SendJson a Database\Table\Selection

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Richard Faila
Člen | 40
+
0
-

Zdravím

Snažil jsem se jedné JS komponentě poslat JSON data. Z databáze jsem dostal Nette\Database\Table\Selection tu jsem vypsal přes $this->sendJson().

Kupodivu místo abych dostal {"1":{"id":1,"name":"Jakub"},"2":{"id":2,"name":"Ivan"}} dostávám jen „{“1":{},„2“:{}}". Data tam jsou, když si je dumpu, tak je vidím.

Použití fetchAll() nemá na výsledek žádný efekt.

Není to nějaký bug? Pamatuji si, že tahle konstrukce dříve fungovala. Dá se to samozřejmě obejít přes ´foreach´ a vytvoření nového pole, ale to mi přijde takové neelegantní.

Nette 2.3.0, PHP Version 5.4.32

Blujacker
Člen | 89
+
0
-

Ahoj, zkusil bych pridal do toho selectionu pridat ->select("*")

Richard Faila
Člen | 40
+
0
-

Blujacker napsal(a):

Ahoj, zkusil bych pridal do toho selectionu pridat ->select("*")

Zdravím

V selectu už si vypisuji o které sloupce máme zájem ->select('id,name'), nemyslím že by to s hvězdičkou byl lepší.

David Matějka
Moderator | 6445
+
+1
-

zkus

array_map('iterator_to_array', $result->fetchAll())
Richard Faila
Člen | 40
+
+1
-

David Matějka napsal(a):

zkus

array_map('iterator_to_array', $result->fetchAll())

Díky, tohle samozřejmě fungovat bude (podobně jako konstrukce s foreach), mě jde spíš o to, že před nějakou dobou (nevím verzi, bylo to 2.1 něco) to nebylo potřeba a fungovalo to i bez toho. Nebo že bych už na tom byl s pamětí tak špatně? :D