Data z databáze do JSON řetězce
- kejlicz
- Člen | 201
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í.
- kejlicz
- Člen | 201
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)