Heslo jako znovupoužitelná komponenta
- Facedown
- Člen | 38
Ahoj,
na několika stránkách mám formulář, kde požaduji heslo a kontrolu hesla, tedy 2 vstupy typu password. Vzniká mi tak na 3 stránkách duplicita typu addPassword()->addRule()… Existuje způsob, jak ke stávajícímu formuláři připojit tyto 2 vstupy, které by byly někde zvlášť?
Děkuju za odpověď.
- Šaman
- Člen | 2666
Možná hledáš formulářový kontejner. Pro přidání do formuláře nemusíš používat třídu addContainer, ale vytvořit si ho samostatně a do formuláře pak přidat jen jeho instanci.
<?php
$form->addContainer('foo'); // přidá nový kontejner který pak musím něčím naplnit
$form['foo'] = new \NS\FooContainer(); // ekvivalent - přidá již připravený kontejner
?>
P.S. Samozřejmě je ideální používat generované továrničky a
nepoužívat operátor new
, ale to už je jiná problematika.
Editoval Šaman (17. 3. 2016 23:27)
- Facedown
- Člen | 38
Šaman napsal(a):
Možná hledáš formulářový kontejner. Pro přidání do formuláře nemusíš používat třídu addContainer, ale vytvořit si ho samostatně a do formuláře pak přidat jen jeho instanci.
<?php $form->addContainer('foo'); // přidá nový kontejner který pak musím něčím naplnit $form['foo'] = new \NS\FooContainer(); // ekvivalent - přidá již připravený kontejner ?>
P.S. Samozřejmě je ideální používat generované továrničky a nepoužívat operátor
new
, ale to už je jiná problematika.
Teď, když to už mám v containeru, jako mohu container vykreslit pomocí n:name?
EDIT:
Nakonec jsem to udělal takto:
<div class="form-group">
{label $form[passwords]->components['password'] /}
{input $form[passwords]->components['password'] class => "form-control", placeholder => "Heslo"}
<p class="help-block">Minimálně 6 znaků</p>
</div>
<div class="form-group">
{label $form[passwords]->components['repeatedPassword'] /}
{input $form[passwords]->components['repeatedPassword'] class => "form-control", placeholder => "Heslo znovu"}
</div>
Není zde možnost, jak tohle „html“ umístit někam do šablony a tu potom vykreslit tak, aby byla propojená s containerem?
Editoval Facedown (18. 3. 2016 10:45)