Form s inputom podla parametru v editacii

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jurajp
Člen | 7
+
0
-

Ahojte,

mam komponent typu form ktory vytvaram cez createComponentAddUserForm, ktory ma nejake inputy atd. Sluzi na vytvaranie usera, cize v template sa zobrazi a ja vyplnim a poslem. V template to volam ako

<?php
{block content}

{control addUserForm}
?>

To iste chcem na editaciu toho usera. nasiel som ze cez metodu setDefaults nastavim defaultne hodnoty inputom. Lenze v editacii potrebujem zobrazit este dalsi input.
Je mozne poslat do createComponent nejak paramater? alebo nejak rozlisit ze raz sa to vola z templatu na pridavanie a raz z templatu na editaciu?

dakujem velmi pekne za akekolvek nasmerovanie.

Juraj

mkoubik
Člen | 728
+
0
-

Tu komponentu si přesuň do vlastní třídy (pokud ještě nemáš) a v presenteru si vytvářej dvě komponenty (addUserForm a editUserForm) z té samé třídy a jedné z nich nastav v konstruktoru $edit = true, druhé $false. Podle toho pak přidej inputy jaké potřebuješ.

Šaman
Člen | 2666
+
0
-

Jestli ten dalši input má být hidden pole pro id editované položky, tak to můžeš dát do jednoho. Ale obecně se doporučuje mít to jako dvě továrny, případně jako dvě samostatné třídy, které obě používají stejný formulářový kontejner.

Editoval Šaman (8. 6. 2014 15:14)

jurajp
Člen | 7
+
0
-

mkoubik napsal(a):

Tu komponentu si přesuň do vlastní třídy (pokud ještě nemáš) a v presenteru si vytvářej dvě komponenty (addUserForm a editUserForm) z té samé třídy a jedné z nich nastav v konstruktoru $edit = true, druhé $false. Podle toho pak přidej inputy jaké potřebuješ.

Vdaka, to ma nenapadlo, spravim to tak …