Persistentní parametr se nenastaví
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- TomasR
- Člen | 6
Ahoj,
potřeboval bych poradit ohledně předání/naplění persistentního
parametru viz. příklad.
Ani jak do šablony adminArticleView tak ani do metody
createComponentAdminArticleEdit se mi parametr
$id_blog_article nanastaví. Chci se zeptat, jestli by mi
někdo neporadil, co dělám špatně?
/** @var PublicArticleFacade */
private $articleFacade;
/** @persistent */
public $id_blog_article;
public function __construct( PublicArticleFacade $articleFacade )
{
$this->articleFacade = $articleFacade;
}
public function renderAdminArticleDefault()
{
$this->template->articles = $this->articleFacade->articleGetAll();
}
public function renderAdminArticleView()
{
$this->template->article = $this->articleFacade->articleGetById( $this->id_blog_article );
}
public function renderAdminArticleEdit()
{
}
protected function createComponentAdminArticleEdit()
{
$information = $this->articleFacade->articleGetById( $this->id_blog_article );
dump($this->id_blog_article);
$form = new \Nette\Application\UI\Form();
$form->addText( 'article_title', 'Název' )
->setRequired()
->setDefaultValue( $information->article_title );
$form->addText( 'article_subtitle', 'Podnázev' )
->setRequired()
->setDefaultValue( $information->article_subtitle );
$form->addTextArea( 'article_description', 'Úvodní text' )
->setRequired()
->setDefaultValue( $information->article_description );
$form->addTextArea( 'article_content', 'Hlavní text' )
->setRequired()
->setDefaultValue( $information->article_content );
$form->addSubmit( 'adminArticleSubmitBack', 'ZRUŠIT' )
->setValidationScope( FALSE )
->onClick[] = [ $this, 'BackToAdminArticleDefault' ];
$form->addSubmit( 'adminArticleSubmitEdit', 'ULOŽIT' )
->onClick[] = [ $this, 'EditAdminArticle' ];
return $form;
}
- igor.pocta
- Člen | 100
Persistentní parametr se liší jen v tom, že se přenáší automaticky. V odkazu se doplňuje automaticky.
Pokud ho chceš dostat do šablony, použij
($this->template->mujParametr).
Pokud v komponentě, budeš si ho muset předat buď přes setter, přes
továrničku nebo, a teď si nejsem jist že to půjde, přes
$this->getPresenter()->mujParametr.