problem s komponentou (sem lama)
- t4nn3r
- Člen | 4
Ahoj, podle datagridu se snazim vytvorit hello world komponentu. Vse funguje tak jak ma, ale mam tu dva problemy.
- <?php $this->paginator->tables = $this->datasource; ?> mi haze:
MemberAccessException
Cannot assign to an undeclared property Paginator::$tables.
- samotnou komponentu mi to vypisuje jako raw text
Nevim si uy rady, asi mi neco unika … poradte nekdo prosim
componenta:
<?php
require APP_DIR . '/controls/paginator.php';
class zobrazmoduly extends Control
{
public $Paginator;
public $datasource;
public $tables;
public function __construct()
{
parent::__construct();
$this->Paginator = new paginator;
}
public function ShowPaginator ($DataSource)
{
$this->datasource = $DataSource;
//$this->Paginator->tables = $this->datasource;
}
public function renderPaginator()
{
$this->paginator->tables = $this->datasource;
}
}
?>
paginator.php:
{snippet paginator}
<div>{tables}</div>
<?php
Debug::dump($tables);
?>
{/snippet}
layout:
...
<body>
...
{capture $content}
...
</body>
...
a nakonec sablona:
{block $content}
@{control dg:paginator}
- redhead
- Člen | 1313
asi by sis měl pořádně pročíst dokumentaci, protože například vůbec nenáš kód nastavující Template k té komponentně, ani nesetuješ do Template tu proměnnou $tables kterou v šabloně vypisuješ. Paginatoru nemůžeš nastavit proměnnou $tables, protože žádná taková v tomto objektu není ( viz Paginator ). Soubor s šablonou pro paginator by neměl končit .php, ale .phtml.
Zkus si projít znovu příklady, protože z toho vidím neporozumnění velké části Nette. Možná by neuškodil i starý quickstart, ale pozor! už nebude nejspíš plně kompatibilní s nynější verzi nette. Spíš jen pro ujasnění pár věcí.
Editoval redhead (29. 9. 2009 21:47)