Undefined variable: posts

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

Zdravím, začínám se učit s nette ale zaseknul jsem se na této chybě: Undefined variable: posts

Nevíte kde je chyba?

<div n:foreach="$posts as $post" class="post">
    <div class="date">{$post->created_at|date:'F j, Y'}</div>

    <h2>{$post->title}</h2>

    <div>{$post->content}</div>
</div>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width">

	<title>{ifset title}{include title|stripHtml} | {/ifset}Nette Web</title>
</head>

<body>
	<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>

	{include content}

	{block scripts}
	<script src="https://nette.github.io/resources/js/netteForms.min.js"></script>
	{/block}
</body>
</html>
<?php

namespace App\Presenters;

use Nette;


class HomepagePresenter extends Nette\Application\UI\Presenter {

    /** @var Nette\Database\Context */
    private $database;

    public function __construct(Nette\Database\Context $database) {
        $this->database = $database;
    }

	public function renderDefault() {
   		$this->template->posts = $this->database->table('posts')
        ->order('created_at DESC')
        ->limit(5);
	}

}

\--

Editoval Gygram (19. 11. 2017 14:11)

japlavaren
Člen | 404
+
+1
-

v sablone nepozna premennu $posts, ktoru foreachujes. podla kodu, co sem posielas by to ale malo byt ok, pretoze v render default ju nastavujes.

skuntroluj si v ci sa ti naozaj vola ta routa Homepage:default a nie nieco ine

jura2.0
Člen | 8
+
0
-

Jestli začínáš, tak to může být více lehce přehlédnutelných drobností. Ale když kód vypadá jak zkopírovaný z dokumentace, tak z poskytnutých informací nevím jistě ani to, že vůbec máš databázi.
Jinak vyzkoušej třeba bdump($this->template->posts) a mrkni do Tracy, ať něco zjistíš