Problém se zpracováním dat z komponenty
- _kali_malek_
- Člen | 7
Ahoj, mám problém s komponentou pro články.
Následoval jsem tento postup. Formulář vykleslím v požadované šabloně, ale nezpracuje se mi. Tudíž se mi nedostane do metody processArticleForm.
ArticleForm služba vypadá takto.
class ArticleForm
{
private $author;
private $articles;
public function __construct (User $user, Articles $articles)
{
$this->author = $user;
$this->articles = $articles;
}
public function create ()
{
$form = new Form();
$form->addText('title', 'Nadpis');
$form->addText('description', 'Popis');
$form->addTextArea('content', 'Obsah', 3);
$form->addCheckbox('published', 'Publikovat');
$form->addSubmit('submit', 'Publikovat');
$form->onSubmit[] = [$this, 'processArticleForm'];
return $form;
}
public function processArticleForm (Form $form)
{
$data = $form->getValues();
$article = new Article();
$article->setName($data->title);
$article->setContent($data->content);
$article->setPublish($data->published);
$article->setAuthor($this->author->getId());
$this->articles->createArticle($article);
}
}
a použití v ArticlePresenteru takto
class ArticlePresenter extends BasePresenter
{
/** @var ArticleForm @inject */
public $articleFormFactory;
public function createComponentArticleForm ()
{
$form = $this->articleFormFactory->create();
$form->onSuccess[] = function (Form $form)
{
$this->redirect('this');
};
return $form;
}
}
Netuší někdo v čem je problém? Děkuju moc za váš čas a rady.
- David Matějka
- Moderator | 6445
ahoj, zkontroluj, ze mas v use
importovany
Nette\Application\UI\Form
a nikoliv
jen Nette\Forms\Form
- _kali_malek_
- Člen | 7
Máš pravdu. Měl sem tam špatný use. Ale formulář se stejně jen přenačte a vubec senedostane do process metody.