Získání parametru při použití snippetu
- m4rty
- Člen | 40
Ahoj,
potřeboval bych získat ID z requestu(?) ve snippetu
default.latte
<a n:href="process! id => '2'">Edit</a>
{snippet list}
{control form}
{/snippet}
.
presenter
function handleProcess($id = 0) {
$this->invalidateControl('list');
}
protected function createComponentForm() {
...
$form->onSuccess[] = callback($this, 'formSubmitted');
}
public function formSubmitted(Form $form) {
$id = (int) $this->getParam('id');
}
Nevím z jakého důvodu mi nelze získat parametr ID ($this->getParam(‚id‘)). Jak ho mohu získat?
Díky předem za respons
Editoval m4rty (20. 9. 2011 19:33)
- hAssassin
- Člen | 293
@m4rty > podle me tady nejde ani tak o pouziti snippetu ale o to, ze ty ten formular renderujes v nejaky sablone. A ty potrebujes render (nebo action) metodu, ktera bude mit parametr ID. To co delas v tom handleru je celkem jedno. Takze si pridej jeste render metodu do presenteru:
public function renderDefault($id = NULL) {
$this->template->id = $id;
}
EDIT: jeste v tom handleru bych pridal podminku, jestli se jedna o Ajaxovy
pozadavek (if($this->isAjax()
) a pak invalidoval (jinak to nema
moc cenu) a v opacnem pripade presmeroval pres
$this->redirect('this', array('id' => $id))
.
Editoval hAssassin (20. 9. 2011 20:11)
- studna
- Člen | 181
function handleProcess($id = 0) {
$this['form']->setDefaults( Array('id'=>$id ) );
$this->invalidateControl('list');
}
protected function createComponentForm() {
...
$form->addHidden('id');
$form->onSuccess[] = callback($this, 'formSubmitted');
}
Editoval studna (20. 9. 2011 23:06)