ScaffoldingRenderer – ako to funguje?
- japlavaren
- Člen | 404
Dobry den,
snazim sa zistit ako spravit manualne vykreslovanie formularov, bohuzial nedari sa mi naist ziaden priklad ani navod. Dokonca ani google mi nepomohol. Pochopil som, ze formular sa manualne zostavi a potom sa donho doplni $form->setRenderer(new ScaffoldingRenderer);. Vypise mi to kod, ale co dalej netusim. Kam mam vypisany kod vlozit aby to fungovalo.
Dakujem
- Jan Endel
- Člen | 1016
základ je takovýto:
Presenter:
$form = $this->getComponent('nazevKomponenty');
Šablona (napriklad):
{widget nazevKomponenty begin}
{widget nazevKomponenty error}
<ul>
<li>{$form['name']->label}:{$form['name']->control}</li>
</ul>
{widget nazevKomponenty end}
jinac je to celkem dobre popsane Ondrou v Chybny Rule Lenght
- japlavaren
- Člen | 404
Zdravim,
nieco som pochopil, ale stale som zmeteny – v presentery mam kod:
<?php
function createComponentAddForm()
{
$form = $this->getComponent('formular');
$form->addText('email', 'E-mail')
->addRule(Form::FILLED, 'Zadajte e-mail')
->addRule(Form::EMAIL, 'E-mail je neplatný');
$form->addText('nadpis', 'Nadpis')
->addRule(Form::FILLED, 'Zadajte nadpis');
$form->addTextarea('otazka', 'Otázka')
->addRule(Form::FILLED, 'Zadajte otázku');
$form->addSubmit('pridatOtazku', 'Pridať otázku');
$form->onSubmit[] = callback($this, 'formAddQuestion');
return $form;
}
?>
v sablone
{widget formular begin}
{widget formular errors}
{!$form->render('begin')}
{!$form->render('errors')}
<table>
<tr class="required">
<th>{!$form['email']->label}</th>
<td>{!$form['email']->control}</td>
</tr>
<tr class="required">
<th>{!$form['nadpis']->label}</th>
<td>{!$form['nadpis']->control}</td>
</tr>
<tr class="required">
<th>{!$form['otazka']->label}</th>
<td>{!$form['otazka']->control}</td>
</tr>
<tr>
<th> </th>
<td>{!$form['pridatOtazku']->control}</td>
</tr>
</table>
{!$form->render('end')}
{widget formular end}
hadze to chybu **Component with name 'nazevKomponenty' does not exist**, samemu mi pride ten kod dost zvlastny. dajte mi prosim niekto priklad ako to ma byt. Dakujem
Editoval japlavaren (22. 3. 2010 14:16)
- Ondřej Mirtes
- Člen | 1536
V té továrničce addForm bych místo toho prvního řádku dal toto:
$form = $this->createComponentFormular();
- japlavaren
- Člen | 404
mozete mi prosim niekto napisat a idealne upnut vzorovy priklad ako to funguje. uz som z toho zufaly