Undefined variable: posts
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Gygram
- Člen | 1
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
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
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íš