defaultni prazdna hodnota pro odeslany formular
- bene
- Člen | 82
Zdravím,
napadla mě jedna featurka pro formuláře. Jednou to bylo probíráno zde, ovšem
k vyřešení se nedošlo.
Bylo by skvělé, kdyby se dalo nastavit, jaká hodnota mi bude vrázena,
pokud je textové políčko prázdné. Dále by bylo skvělé, aby šlo nastavit
přetypování. Mohlo by se pak porovnávat pomocí tří rovnítek a
programátor by nebyl zatížen převodem
('0' == '' => true)
.
Moje představa by byla asi nějak tak:
->addText('name', 'Label')->setType(Form::INTEGER, null)
, kde
první parametr by byl, na co se má přetypovat a druhý by byl, jaká je
výchozí hodnota, pokud uživatel políčko nevyplnil. Pořadí parametrů by
klidně mohlo být naopak nebo pro každou věc zvlášť metoda (tudíž dvě
metody).
Možná je to hloupost, ale myslím si, že by to zpřehlednilo kód a vyřešilo to spoustu nezáživné a opakující se práce s přetypováváním. Dle mě to není složité do formulářů přidat. Pokud by se to odsouhlasilo, klidně bych to dopsal.
Když už mluvím o přetypování, nebylo na škodu umět i get parametrům říct, jaký typ vyžaduji.
Vezmeme-li metodu getParam('number', null)
, bylo by velmi
jednoduché doplnit o 3. parametr
getParam('number', null, self::INTEGER)
. Pak vím jistě, že
dostanu null
nebo int
. Pokud bych chtěl docílit
stejného efektu teď, muzel bych napsat.
$num = $this->getParam('number');
if ($num !== null) {
$num = (int) $num;
}
Opět mi příjde zápis se třemi parametry kratší a přehlednější.
Samozřejmě, tohle nastane, jen pokud výchozí hodnotu beru null
,
kdybych ji bral jako číslo 0
, stačilo by napsat
$num = (int) $this->getParam('number', 0)
.
Zápis jaký typ vyžaduji by klidně mohl být
'int', self::INTEGER, self::INT, HttpRequest::INT
, nevím co by
bylo nejlepší…
Co myslíte?