Chyba při vypsání dat z databáze – foreach

Sharmlock
Člen | 8
+
0
-

Zdravím,

snažím se vypsat data z databáze a nějak mi to prostě nejde.

Funguje mi to na HomepagePresenter.php:

<?php

declare(strict_types=1);

namespace App\Presenters;

use Nette;

final class HomepagePresenter extends Nette\Application\UI\Presenter
{
    private Nette\Database\Explorer $database;

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

    public function renderDefault(): void
    {
        $this->template->users = $this->database
            ->table('users')
            ->order('id');
    }
}

a takhle to vypisuju v default.latte:

{block content}
	<h1 n:block="title">Můj blog</h1>

	{foreach $users as $post}
	<div class="post">
		<h2>{$post->name}</h2>
	</div>
	{/foreach}
{/block}

Takhle mi to normálně funguje, ale když zkusím vypsat data z SchuzkyPresenter.php:

<?php
namespace App\Presenters;

use Nette;
use Nette\Application\UI\Form;

final class SchuzkyPresenter extends Nette\Application\UI\Presenter
{
    private Nette\Database\Explorer $database;

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

    public function renderDefault(): void
    {
        $this->template->users = $this->database
            ->table('users')
            ->order('name');
    }
}

a takhel vypada muj prehled.latte:

{block content}
	<h1 n:block="title">Můj blog</h1>

	{foreach $users as $post}
	<div class="post">
		<h2>{$post->name}</h2>
	</div>
	{/foreach}
{/block}

a vyhodí mi to přes TRACY tento error:
https://gyazo.com/…e8fa47e73db2

Už se s tím peru dlouho, nevíte co mám špatně? Tipuju, že mám nějak špatně cestu.. Předem díky..

nightfish
Člen | 468
+
+3
-

Problém je v tom, že proměnnou do šablony nastavuješ v renderDefault(), což je metoda, která se volá při vykreslení šablony ze souboru default.latte. Ty vykresluješ prehled.latte, tzn. potřebuješ zapsání do users provést v renderPrehled().

Jak to celé funguje je pěkně popsané v dokumentaci

Sharmlock
Člen | 8
+
0
-

Díky moc.