Jak na CRUD?
- mardon
- Člen | 59
Takže již asi na pátý pokus začínám s Nette, vyřešila jsem připojení k db přes dibi, teď ale bojuji s úkolem v mém primitivnim testovacim příkladu jak udelat vlozeni zaznamu do db studovala jsem vzorovy Akrabat a jeste jiny kod a zjistila jsem , ze je to reseneé pomocí jakési komponenty. Netuším vůbec proč? Šlo by to to řešit i pomocí funkce adzaznam? Pak mi neni jasne, chtela bych mit vlozeni zaznamu uzivatele bez prihlaseni a také umožnit vložení záznamu i adminovi po přihlášení, jak navrhnou strukrturu kodu, abych nemusela 2× vypisovat totoéž jednou pro nepřihlášeného a taktéž pro přihlášeného admina.
- Honza Marek
- Člen | 1664
mardon napsal(a):
Takže již asi na pátý pokus začínám s Nette, vyřešila jsem připojení k db přes dibi, teď ale bojuji s úkolem v mém primitivnim testovacim příkladu jak udelat vlozeni zaznamu do db studovala jsem vzorovy Akrabat a jeste jiny kod a zjistila jsem , ze je to reseneé pomocí jakési komponenty.
Není jakási komponenta náhodou formulář?
Netuším vůbec proč? Šlo by to to řešit i pomocí funkce adzaznam?
Co to je funkce adzaznam a kde se má vyskytovat?
Pak mi neni jasne, chtela bych mit vlozeni zaznamu uzivatele bez prihlaseni a také umožnit vložení záznamu i adminovi po přihlášení, jak navrhnou strukrturu kodu, abych nemusela 2× vypisovat totoéž jednou pro nepřihlášeného a taktéž pro přihlášeného admina.
Jak se liší ty jejich „záznamy“? Co to vlastně je konkrétně ten záznam?
- Jan Tvrdík
- Nette guru | 2595
Honza Marek napsal(a): Co to je funkce adzaznam a kde se má vyskytovat?
Třeba to mělo být addZaznam
.
- mardon
- Člen | 59
Takže vidím, že Vás mů dotaz hodně pobavil, takže zkusím se zeptat přesněji ve vzorovém Akrabatu je komponenta
/********************* component factories *********************/
/**
* Album edit form component factory.
* @return mixed
*/
protected function createComponentAlbumForm()
{
$form = new AppForm;
$form->addText('artist', 'Artist:')
->addRule(Form::FILLED, 'Please enter an artist.');
$form->addText('title', 'Title:')
->addRule(Form::FILLED, 'Please enter a title.');
$form->addSubmit('save', 'Save')->getControlPrototype()->class('default');
$form->addSubmit('cancel', 'Cancel')->setValidationScope(NULL);
$form->onSubmit[] = callback($this, 'albumFormSubmitted');
$form->addProtection('Please submit this form again (security token has expired).');
return $form;
}
která se ( pokud to správně chápu) volá akcí:
public function renderAdd()
{
$this['albumForm']['save']->caption = 'Add';
}
můj dotaz směroval k tomu proč se formulář tvoří pomocí createComponent a zda by ho šlo vytvořit i pomocí funkce?
Editoval mardon (23. 2. 2010 18:39)
- Jan Tvrdík
- Nette guru | 2595
mardon napsal(a):
můj dotaz směroval k tomu proč se formulář tvoří pomocí createComponent
Aby ho bylo možné vytvořit kdykoliv, kdy to bude potřeba a zároveň, aby ho bylo nutné tvořit pouze, když to bude potřeba. Prostě klasický lazy přístup.
zda by ho šlo vytvořit i pomocí funkce?
Nechápu. Jako globální funkcí mimo třídu? Proč? Ano, v Nette je (skoro) všechno možné :)
- i.magine
- Člen | 81
která se ( pokud to správně chápu) volá akcí:
public function renderAdd() { $this['albumForm']['save']->caption = 'Add'; }
Touhle akcí se nevolá, jenom se při renderingu přenastavuje caption (popisek) u submit buttonu. Většinou se (ale akrabat jsem nezkoumal) takhle vytvořená komponenta volá až v šabloně, nějak takhle:
{widget albumForm}
- mardon
- Člen | 59
i.magine napsal(a):
která se ( pokud to správně chápu) volá akcí:
public function renderAdd() { $this['albumForm']['save']->caption = 'Add'; }
Touhle akcí se nevolá, jenom se při renderingu přenastavuje caption (popisek) u submit buttonu. Většinou se (ale akrabat jsem nezkoumal) takhle vytvořená komponenta volá až v šabloně, nějak takhle:
{widget albumForm}
Děkuji za dovysvětlení to je důležitá informace,zase jsem se posunula kousek dále
- despiq
- Člen | 320
projdi si Nette\Application\Presenter pak by ti melo byt jasne co je render faze
Editoval despiq (1. 3. 2010 23:05)