App\Components\Forms\ArticleForm::getReflection() is deprecated in
- kiCkZ
- Člen | 153
Zdravim,
prosím nevíte někdo, proč když přistupuji k formulářové komponentě, tak mi to vyhazuje tuto chybu:
App\Components\Forms\ArticleForm::getReflection() is deprecated in /Users/kickz/Sites/cms/vendor/nette/application/src/Application/UI/Component.php:129
// v této editaci je problém
public function actionEdit($id)
{
$this->id = $id;
$article = $this->articleRepository->getArticle($id);
if (!$article) {
$this->error('Článek nebyl nalezen');
}
$this['articleForm']->setDefaults($article->toArray()); // chyba k tomuto řádku
}
// komponenta v presenteru
public function createComponentArticleForm()
{
$control = $this->articleForm->create($this->id, function () {
$this->flashMessage('Článek byl úspěšně uložen.', 'alert-success');
$this->redirect('default');
});
return $control;
}
Děkuji
Editoval kiCkZ (10. 6. 2018 15:05)
- kiCkZ
- Člen | 153
Ondřej Kubíček napsal(a):
a co je v té třídě
ArticleForm
?
Továrnička zaregistrovaná v configu:
IArticleFormFactory.php
interface IArticleFormFactory
{
/** @return \App\Components\Forms\ArticleForm */
function create($id);
}
Doplním ještě ArticleForm.php
public function render()
{
$this->template->setFile(__DIR__ . '/articleform.latte');
$this->template->render();
}
public function createComponentForm()
{
$form = $this->formFactory->create();
$form->addText('title', 'Název článku: ')
->setRequired();
$form->addText('url', 'URL adresa: ');
$form->addSelect('category_id', 'Kategorie:', $this->articleCategoryRepository->getNameCategories());
$form->addTextArea('content')
->setHtmlId('tiny-textarea');
$form->addSubmit('save', 'Uložit');
if($this->article) {
$form->setDefaults($this->article->toArray());
}
$form->onSuccess[] = [$this, 'processForm'];
return $form;
}
public function processForm(Form $form, ArrayHash $values)
{
try {
if (!$this->article) {
$this->articleRepository->createArticle($values->title, $values->url, $values->category_id, $values->content);
}
$this->articleRepository->createArticle($values->title, $values->url, $values->category_id, $values->content);
} catch (Exception $e) {
$form->addError('Nepodařilo se vytvořit článek');
}
}