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
+
0
-

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
+
+1
-

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.