Defaultni hodnoty v routach a v presenteru
- Felix
- Nette Core | 1245
Zdravim, porad tapu v principech defaultnich hodnod v routech a presenterech. Uvedu par prikladu:
<?php
$router[] = new Route('fotogalerie/fotka-<id>#<comment>', array(
'presenter' => 'Fotogallery',
'action' => 'fotka',
'id' => NULL,
'comment' => NULL
));
?>
Zajima me, jaky vliv na to ma kdyz uvedu:
- ID null, COMMENT null
- ID null, COMMENT 1
- ID null, COMMENT vypustim
- ID vypustim, COMMENT vypustim
Jak se toto ovlivnuje?
Dale pak jaky to ma vliv na akci presenteru.
<?php
public function actionFotka($id = null,$comment = null){}
public function renderFotka($id = null,$comment = null){}
?>
Zajima me zda-li se obou poslou stejne udaje. A pak jak to souvisi kdyz
v obou metodach nezadam za vars null. Chapu to spravne, ze kdyz v route dam za
ID null – tak neni povinne? Tudiz se do actionFotka:id nic neposle? A kdyz
v route nastavim ‚id‘ ⇒ 1, tak defaultne kdyz se nevyplnise bude posilat
cislo 1?
Poradte, dekuji.
- PJK
- Člen | 70
Ano, když dáš defaultní hodnotu NULL, je parametr nepovinný.
Cokoliv jiného bude defaultní hodnota, která se doplní, pokud argument bude chybět.
Pokud uvedeš parametr v routě a nezadáš ani defaultní hodnotu, ani NULL, tak se v případě, že tento parametr bude chybět routa a url nematchnou → 404 – BadRequestException.
Defaultní parametry funkcí s tím prakticky nemají co dělat
Editoval PJK (29. 8. 2010 20:58)