Data z databáze do JSON řetězce

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

Dobrý den.

Zkouším tenhle tutoriál http://www.nullpointer.cz/…tables-dil-4 na použití DataTables. Nějak jsem se ztratil v tom, jak generovat data z databáze do JSON.

Data normálně načtu v modelu např. takto

$this->db->table("skola")->limit(10)->fetchAll();

a v presenteru v handlu z kterého čte tabulka přes Ajax data dělám toto

$skoly["aaData"] = $this->skolaModel->get();
$this->sendResponse(new Nette\Application\Responses\JsonResponse($skoly));

a jako JSON dostanu jenom tohle

{
aaData: {
34543: { },
34544: { },
34545: { },
34546: { },
34547: { },
34548: { },
34549: { },
34550: { },
34551: { },
34552: { }
}
}

tedy, jsou tam jen IDčka a další data ne.

Nějak jsem se v tom zamotal a nevím jak to dostat do stavu, abych v tom JSONu měl i další data.

Díky za nakopnutí.

mkoubik
Člen | 728
+
+1
-

Nette Database nepoužívám, ale zkus jednotlivé řádky převést na pole:

$skoly['aaData'] = array_map(function($row) {
	return $row->toArray();
}, $this->skolaModel->get());
kejlicz
Člen | 201
+
0
-

mkoubik napsal(a):

Nette Database nepoužívám, ale zkus jednotlivé řádky převést na pole:

$skoly['aaData'] = array_map(function($row) {
	return $row->toArray();
}, $this->skolaModel->get());

Díky za odpověď. Tohle mi data do JSONu dostane, ale ještě bych to potřeboval v takové struktuře, jak to vyžaduje ten plugin DataTables.
Vyžadovaná struktura

{
  "aaData": [
    {
      "id": 9,
      "email": "franta@vokurka.cz",
      "name": "Franta Vokurka",
      "role": "guest"
    },
    {
      "id": 10,
      "email": "lojza@lojza.cz",
      "name": "Lojza P\u0159echodn\u00edk",
      "role": "guest"
    },
}

Moje současná struktura

aaData: {
34543: {
id: 34543,
skola_nazev: "Akademické gymnázium, škola hlavního města Prahy",
uid: "149000000000113",
ic: "70872503",
telefon: "221 421 933",
fax: "221 421 957",
reditel: "PaedDr. Milan Štěrba"
},
34544: {
id: 34544,
skola_nazev: "Akademie J.A. Komenského",
uid: "149000000000587",
ic: "00442933",
telefon: "257 531 476",
fax: "257 534 054",
reditel: "Doc. PhDr. Luboš Chaloupka, CSc."
......

Co prosím s tím? Já jsem v koncích. Zvláštní je, že v tom tutoriálu prostě použije fetchAll(), udělá z toho JSON a jede to.

Díky

Editoval kejlicz (15. 9. 2014 13:59)

mkoubik
Člen | 728
+
0
-

Tak to prožeň ještě přes array_values(). A celé bych to dal do toho modelu.

kejlicz
Člen | 201
+
0
-

Chytrej z toho nejsem, ale jdu se s tím zkusit nějak poprat.

mkoubik
Člen | 728
+
+2
-

Teď jsem se tady dočetl, že by mělo fungovat ->fetchPairs(null, null).