Vypsání JSON dat z databáze do šablony

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

Čau, potřeboval bych poradit jak vypsat data z databáze v JSONu do .latte

Presenter

public function renderComments()
	{
		$data=$this->database->table('comments')->fetchAll();
		Json::encode($data);
		$this->template->apicomments = $data;
	}

Nevím hlavně jak je vypsat v .latte, momentálně jsem je vypisoval bez jsonu jen jako

{foreach $apicomments as $comment}
		<p>{$comment->id} <b>{$comment->name}</b></p>
		{$comment->content}
{/foreach}

Díky za pomoc

hitzoR
Člen | 51
+
0
-

Jak je chceš vypsat? Nestačí to jen obalit do <pre> a normálně vypsat?

<pre>{$apicomments}</pre>

Editoval hitzoR (12. 10. 2016 19:03)

mi85
Člen | 41
+
0
-

Chtěl bych to vypsat ve stylu (jen příklad)

{"a":1,"b":2,"c":3,"d":4,"e":5}

Tracy mi vrací htmlspecialchars() expects parameter 1 to be string, array given

hitzoR
Člen | 51
+
0
-

Už vidím problém, Json::encode($data); změň na $data = Json::encode($data);

mi85
Člen | 41
+
0
-

Díky, vypisuje to {„24“:{},„25“:{},„30“:{}} což jsou idčka komentářů (1 sloupec v databazi) ale nevypisuje mi to celý řádek tj. content+name .Čím by to mohlo být ? Díky

Mysteria
Člen | 797
+
0
-
$this->template->apicomments = Json::encode($this->database->table('comments')->select('*')->fetchAll());
mi85
Člen | 41
+
0
-

Mysteria napsal(a):

$this->template->apicomments = Json::encode($this->database->table('comments')->select('*')->fetchAll());

Nic se nezměnilo

h4kuna
Backer | 740
+
0
-

K čemu to je mít v šabloně vypsaný json, když normální uživatel mu nerozumí? Píšeš nějakou dokumentaci?

mi85
Člen | 41
+
0
-

h4kuna napsal(a):

K čemu to je mít v šabloně vypsaný json, když normální uživatel mu nerozumí? Píšeš nějakou dokumentaci?

Potřeboval jsem si ověřit výsledek ale již jsem to vyřešil jinak.Díky