DB core selection a json-send

fikusir
Člen | 27
+
0
-

Ahoj,

pro ajax jsem si vytvořil malinké API, které vrací json.

Pokud použiji Database Core, tak vše funguje. Pokud Database Explorer (zakomentovaný řádek v metodě getAll), tak nikoliv.

Současný kód Model

	public function getAll()
	{
		return $this->database->fetchAll('SELECT * from RVBarevky');
		// return $this->database->table('RVBarevky');
	}

Současný kód Presenter ($data[‚data‘] je tam schválně, v JSON se to tím data musí celé obalit)

	public function actionGetAll(){
		$data['data']=$this->barevkyManager->getAll();
		$this->sendJson($data);
	}

Neptal bych se, ale 4 hodiny na tomto problému mi přijde dost. Zkoušel jsem všelijaké varianty, ale nic nezabralo, resp. v jednom případě mi json alespoň vracel první sloupec DB (celkem má 2).

Moc díky za odpověd k banálnímu případu

Mistrfilda
Člen | 76
+
0
-

Ahoj,

problem je ten, ze return $this->database->table('RVBarevky'); vraci instanci tridy selection https://api.nette.org/…lection.html – nad touto tridou pak musis jeste zavolat dalsi metody pro vytazeni dat, napr. ve tvem pripade metodu fetchAll() Vysledek by mel byt takto: return $this->database->table('RVBarevky')->fetchAll();

fikusir
Člen | 27
+
0
-

To byla jedna z věcí, které jsem zkusil jako první, nicméně k výsledku nevedla :( jako bonus mi v tomto případě dle Tracy aplikace spustila 15 různých SQL dotazů napříč celou databází (MSSQL).

No u SELECT asi zůstanu u DB Core a DB Explorer použiji pro UPDATE a INSERT – tam to funguje parádně.