Component with name ‚commentForm‘ does not exist
- Jack.q
- Člen | 54
igor.pocta napsal(a):
Pošli PostPresenter
Tady je PostPresenter:
<?php
namespace App\Presenters;
use App\Forms;
use Nette\Application\UI\Form;
class PostPresenter extends BasePresenter{
protected function createComponentCommentForm(){
$form = new Form;
$form->addText('name', 'Jméno:')
->setRequired('Vyplňte jméno')
->setAttribute('placeholder', 'Jméno');
$form->addTextArea('comment', 'Komentář:')
->setRequired('Vyplňte komentář')
->setAttribute('placeholder', 'Text komentáře');
$form->addSubmit('send', 'Přidat komentář');
$form->onSuccess[] = [$this, 'commentFormSucceeded'];
return $form;
}
public function commentFormSucceeded($form, $values){
$postId = $this->getParameter('postId');
$this->database->table('hp_comment')->insert([
'id_h' => $postId,
'name' => $values->name,
'comment' => $values->comment,
]);
$this->flashMessage('Děkuji za komentář', 'success');
$this->redirect('this');
}
}
- igor.pocta
- Člen | 100
Já v tom chybu nevidím. Jsi ve správné šabloně (pod app\presenters\templates\ Post \xxx.latte)?
Editoval igor.pocta (5. 8. 2017 10:11)
- Jack.q
- Člen | 54
igor.pocta napsal(a):
Já v tom chybu nevidím. Jsi ve správné šabloně (pod app\presenters\templates\ Post \xxx.latte)?
Ne, jsem pouze v app\presenters\ (je to přece jen script pro form a
zpracování)
Formulář vypisuji v app\presenters\templates\Clanky\xxx.latte
Tento soubor: PostPresenter je čistě jen soubor pro formulář, zpracování,
a Presenter v templates žádný není.
--- Doplněno ---
Tak jsem vytvořil app\presenters\templates\Post\default.latte, ale i tak to
píše: Component with name ‚commentForm‘ does not exist. Problémem teď
je, že absolutně netuším jako zobrazit formulář pro komentáře pod
článkem, když jsem vypsal formulář
v app\presenters\templates\Post\default.latte
Editoval Jack.q (5. 8. 2017 10:59)
- David Matějka
- Moderator | 6445
formular musis mit v tom presenteru, kde ho chces vypsat. tedy v tvem pripade v ClankyPresenter
- Jack.q
- Člen | 54
David Matějka napsal(a):
formular musis mit v tom presenteru, kde ho chces vypsat. tedy v tvem pripade v ClankyPresenter
Mockrát díky za radu, vyřešeno. Ovšem form to sice vypisuje, a však ne se vzhledem který mám přednastaven v css.
---Doplněno---
Tak už vím v čem je problém, ale nechápu jej, Pro input type submit mi
přidělil class ale já jsem jej nepřidělil v Presenteru, takže
nechápu
Editoval Jack.q (5. 8. 2017 11:16)
- Mysteria
- Člen | 797
Když použiješ {control commentForm}
tak se použije výchozí formátování.
Buď si to můžeš upravit, nebo ho vykreslovat
manuálně.
- Jack.q
- Člen | 54
Mysteria napsal(a):
Když použiješ
{control commentForm}
tak se použije výchozí formátování. Buď si to můžeš upravit, nebo ho vykreslovat manuálně.
Díky, vyřešeno