Vyžadování persistentních parametrů presenteru v definici každé akce
- Mikulas Dite
- Člen | 756
Je nutné vynucovat uvedení persistentních parametrů presenteru i v každé metodě?
Následující ukázka vyhodí pro Profile: $id
.
error: Passed more parameters than method Presenter\Front\Profile::actionDefault() expects.
class ProfilePresenter extends BasePresenter
{
/** @persistent */
public $id;
public function actionDefault()
{
dump($this->id);
}
}
- Ondřej Mirtes
- Člen | 1536
Ukaž v šabloně ten {link}
, asi ho zapisuješ špatně
(myslí si, že má strčit něco do actionDefault, namísto použití
persistentního parametru).
- Mikulas Dite
- Člen | 756
Aha, máš pravdu. Našel jsem tam
<a n:href="Profile: $id">
, bez čárky. S ní se to chová
jinak. Trošku mě překvapuje, že to funguje. Nemělo by to teda spíš hodit
warning nebo něco?
Editoval Mikulas Dite (25. 5. 2011 22:13)
- Ondřej Mirtes
- Člen | 1536
Pro zápis persistentního parametru musíš psát tohle:
{link Profile: 'id' => $id}
Ten tvůj zápis je skutečně pro parametr do metody.
- Mikulas Dite
- Člen | 756
Aha, rozumím. Při jednom parametru by to sice mohlo poznat, ale to by byla moc velká magie, protože pro víc už by to nebylo jasné. U normálních parametrů to bere podle pořadí.
Ok, díky za objasnění.