Problém s vypsáním dat z DB

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

Ahoj,
řeším jednoduchý výpis dat z databáze, zkouším to takto:
PRESENTER:

class NazevPresenter extends \BasePresenter
{
    public function actionShow()
    {
        $this->template->todos = $this->model->findAllTodos();
    }


    public function renderShow() {
		$todos = $this->model->findAllTodos();
		$this->template->todos = $todos;

    }

    public function getModel() {
        if(!isset($this->nazevManager))
            $this->nazevManager = new \NazevManager;

        return $this->nazevManager;
    }
...
}

MODEL

class NazevManager
{
    public function findAllTodos($order = NULL, $where = NULL, $offset = NULL, $limit = NULL)
    {
        return dibi::query(
            'SELECT * FROM [specs]',
            '%if', isset($where), 'WHERE %and', isset($where) ? $where : array(), '%end',
            '%if', isset($order), 'ORDER BY %by', $order, '%end',
            '%if', isset($limit), 'LIMIT %i %end', $limit,
            '%if', isset($offset), 'OFFSET %i %end', $offset
        );
    }
...
}

ŠABLONA

	{if count($todos) > 0}
	<table>
		<tr><th>&nbsp;</th><th>Úkol</th><th>Přidáno</th></tr>
		<tr n:foreach="$todos as $todo">
		<td>{$todo->name} (<a href="{link delete!, $todo->id}">smazat</a>)</td>
		</tr>
	</table>
	{/if}

Ale v místě, kde by se měl objevit výpis dat, mi vyskočí chybová hláška **

Notice: Undefined variable: todos in /var/www/acl/app/temp/c-Nette.Template/_352824bef54ea7516659851f0fbe1a86.default.phtml.php on line 74**

Temp jsem mazat zkoušel, neporadili byste prosím, v čem by mohla být chyba?
(k databázi připojený jsem)

Editoval Manny7 (4. 8. 2010 10:56)

leumas
Člen | 13
+
0
-

Si si isty, ze tvoja sablona sa vola show.phtml? Presenter totiz by default, ak mu nepovies, o aky view sa jedna, vola default, lenze ty mas nakodeny iba show.

westrem
Člen | 398
+
0
-

Len take drobnosti:

  1. vracia ti query do DB spravne vysledky?
  2. $todos nastavujes jednak aj v action a aj v render, staci iba raz, kedze sa vykonavaju obe funkcie
  3. to co napisal leumas +1
  4. tvoj NazevPresenter by mal byt final