control form predani hodnoty do tovarnicky
- Turbo
- Člen | 24
Zdravim panove,
mam na vas prosbu potrebuji poradit jak predat z neco.latte do tovarny
hodnotu.
Mam neco.latte v nem {control necoForm} a potrebuji to upravit na {control
necoForm(hodnota)} je to jen navrh jak to asi udelat.Proc to vubec takhle chci
pouzivam form na vice mistech a nektere inputy nechci aby se vykreslili form
rendruji rucne v componete vlasnim latte.diky za rady.
- CZechBoY
- Člen | 3608
Nemůžeš z toho formuláře udělat potomky? Případně si do
továrničky předat parametry jako showName
,
showPassword
, …
public function __construct (array $args = [])
{
$this->args = $args;
}
protected function createComponentForm ()
{
$form = new Form;
if (!empty($this->args['showName'])) {
$form->addText('name');
}
return $form;
}
public function render ()
{
$this->template->args = $args;
$this->template->render();
}
Pokud používáš ruční render tak třeba takto:
<form n:name="form">
{if !empty($args['showName'])}
{label name/}{input name}
{/if}
</form>
@premek_k Předávat parametry do {control} není moc dobrej nápad. Pokud invaliduju snippet v té komponentě tak se nepředají parametry z toho {control} nadřazeného volání (třeba v šabloně presenteru).
Editoval CZechBoY (8. 3. 2016 20:51)
- Turbo
- Člen | 24
neco.latte
{control addInvoices}
InvoicPresneter.php
<?php
protected function createComponentAddInvoices()
{
$form = new \App\Components\Form\NewInvoicesForm($tady pridat co potrebuji dostat do konstructoru);
$form['newInvoicesForm']->onSuccess[]= $this->AddInvoicesSucceeeded();
return $form;
}
?>
NewInvoicesForm.php
<?php
class NewInvoicesForm extends UI\Control
{
tady bude
__constructor($neco)
public function render()
{
$template = $this->template;
$template->neco = $this->neco; ///tady pridat z __constructoru
$template->render(__DIR__.'/NewInvoicesForm.latte');
}samozrejme do NewInvo....latte bude podminka pri rucni generovani formu
protected function createComponentNewInvoicesForm()
{
//tady podminka pro generovani form prvku samoyrejme u daneho prvku....
$form = new UI\Form;
###prvky formu
return $form
}
a v neonu registrovani.
}
?>
Editoval Turbo (9. 3. 2016 0:06)
- CZechBoY
- Člen | 3608
Jeste pridej tovarnicku.
Typicky (pozor, pridej php anotaci return):
interface INewInvoicesFormFactory
{
/**
* @return NewInvoicesForm
*/
function create();
}
Tohle potom zaregistruj jako sluzbu a vyzadej v presenteru.
Taky jsem si vsiml, ze v predenteru, v createComponent mas onSuccess[] = a
volani funkce. Mel bys tam mit jakoby jen odkaz na tu funkci:
$form->onSuccess[] = $this->invoiceSucceeded;
Nebo ta metoda vraci callback?
Editoval CZechBoY (9. 3. 2016 8:50)