Nefungující createComponent
- natlaid
- Člen | 18
Dobrá den,
Mám problém s Komponentama. Definuji si v Presenteru (se jménem Auth)
komponentu: createComponentLoginForm a pak si jí pomocí
tohoto pokusím zavolat: {control loginForm}. Kdoví kolikrát
jsem kontroloval, jestli mám vše správně zapsáno, takže netuším v čem
by mohl být problém…
Děkuji za radu…
- natlaid
- Člen | 18
Velice se omlouvám, používám Nette Alpha 2. Vyhazuje to tuto vyjímku:
InvalidArgumentException
Component with name ‚loginForm‘ does not exist.
Vyhazuje to chybu na řádku 119 v souboru Application/Control.php.
public function getWidget($name)
{
return $this->getComponent($name);
}
- natlaid
- Člen | 18
Dobře (Jak je tam to Form::FILLED, tak mám nahoře v souboru napsáno use Nette\Forms\Form)
protected function createComponentLoginForm()
{
$form = new \Nette\Application\AppForm($this, ‚loginform‘);$form->addText(‚login‘, ‚Jméno:‘)
->addRule(Form::FILLED, ‚Prosím zadejte svoje jméno.‘);$form->addPassword(‚password‘, ‚Password:‘)
->addRule(Form::FILLED, ‚Prosím zadajte heslo.‘);$form->addProtection(‚Prosím odešlete formulář znova.‘);
$form->addSubmit(‚send‘, ‚Přihlásit!‘);$form->onSubmit[] = array($this, ‚loginFormSubmitted‘);
return $form;}
- Mikulas Dite
- Člen | 756
$form = new \Nette\Application\AppForm($this, ‚loginform‘);
oprav na
$form = new \Nette\Application\AppForm($this, $name);
To by asi mělo stačit. (name se přidává magicky)
- natlaid
- Člen | 18
Mikulas Dite napsal(a):
$form = new \Nette\Application\AppForm($this, ‚loginform‘);
oprav na
$form = new \Nette\Application\AppForm($this, $name);
To by asi mělo stačit. (name se přidává magicky)
Jo, to je ono, už mi to funguje. Díky moc, ale jestli se můžu se zeptat, kde se ta magická proměnná veme?
- Mikulas Dite
- Člen | 756
To magické jsem myslel tak, že se továrnička s tím parametrem volá, to co psal redhead jsem zapomněl uvést. Díky.