screencast Kontaktní formulář – Component with name ‚ContactForm‘ does not exist
- assassik
- Člen | 43
pozorně si to přečti…
Component != Class
musíš udělat továrničku createComponentXYZ
v presenteru
viz:
https://github.com/…resenter.php#L26
- vtitl
- Člen | 29
Továrničku jsem udělal, ten Thread o tom samém jsem viděl, ale nepomohl mi.
Možná mi chybí teorie, ale zkuste mi jen říct, proč tady
{control contactForm} má být malé písmeno c (potom, co jsem to změnil to
začalo fungovat)
a všude jinde to píši s velkým C (class ContactForm atd.)?
Díky za info:)
- kravčo
- Člen | 721
vtitl napsal(a):
Továrničku jsem udělal, ten Thread o tom samém jsem viděl, ale nepomohl mi.
Možná mi chybí teorie, ale zkuste mi jen říct, proč tady
{control contactForm} má být malé písmeno c (potom, co jsem to změnil to začalo fungovat)
a všude jinde to píši s velkým C (class ContactForm atd.)?Díky za info:)
v prípade {control contactForm}
je „contactForm“ názov
komponenty, nie názov triedy (sú to dve rozdielne veci a vôbec nemusia byť
rovnaké). Názvy komponent majú malé písmeno na začiatku – tak
bezproblémovo fungujú s továrničkami.
ContactForm.php
// prispôsobený formulár
class ContactForm extends \Nette\Application\UI\Form
{
// ...
}
ContactPresenter.php
// továrnička vytvorí komponent s názvom 'form'
public function createComponentForm($name)
{
return new ContactForm;
}
Contact.default.latte
<!-- šablóna vykreslí komponent s názvom form -->
<div id="page">
<h1>Contact Form</h1>
{control form}
</div>