Nejasnosti kolem validačních pravidel
- Lopy
- Člen | 5
Cus, s nette začínám a aktualně se zabívám formulářema konkrétně
validčníma pravidlama.
Odkoukal jsem pár příkladu zde na foru, ale nejsem z toho 2× chytrej.
Trčí mi v hlavě problem. Potřebuji zkontrolovat zda uploadovaný soubor ja
daného formátu. Existuje na to nějaká statická metoda jako Form:Extension
nebo jakým způsobem by měla být sestavena callbacková metoda?
A pak ještě začátečnické otázky:
- addRule mi je jasný – čistě pravidlo
- addCondition jestli jsem dobře pochopil, to je podmínka zda se maj vykonávat podřazené Pravidla?
- addConditionOn jsem se nedopídil
- defaultně mi při neslnění podmínky vyskočí JS okno. když vypnu JS, tak to vypisuje přehledný seznam. Lze to defautlně přepnout na seznam?
- stáhnul jsem si nějaké příklady a testuji – pokud zadám špatně jméno souboru, nevyskočí JS okno ale input 2× červeně problikne a napíše message. Jakým způsobem si vytvářet tyto message?
- když zpracovám soubor, jakym způsobem se dostanu k parametrum size apod. když si dám var_dump vypisuje mi to ve formatu size:private, ale ani pres „size“ nebo „tmpName:private“ se tam nemůžu dostat. klidně by se hodil nějakej hotovej skript, z praxe se člověk nejvíc naučí.
Diky za pomoc
- romansklenar
- Člen | 655
Lopy napsal(a):
Potřebuji zkontrolovat zda uploadovaný soubor ja daného formátu. Existuje na to nějaká statická metoda jako Form:Extension nebo jakým způsobem by měla být sestavena callbacková metoda?
$form->addFile('image', 'Obrázek')
->addCondition(Form::FILLED)
->addRule(Form::MIME_TYPE, 'Nahraný soubor musí není obrázek.', 'image/*'); // nebo výčet mime typů oddělených čárkou
Lze to defautlně přepnout na seznam?
// vypnutí javascriptové validace
$renderer = new ConventionalRenderer;
$renderer->setClientScript(); // nebo možná FALSE, nezkoušel jsem
$form->setRenderer($renderer);
když zpracovám soubor, jakym způsobem se dostanu k parametrum size apod.
// po odeslání
$values = $form->getValues();
$uploadedFile = $values['image'];
echo $uploadedFile->getSize();
$uploadedFile
je teď instance třídy HttpUploadedFile,
pro práci s ní, viz její API.
- _Martin_
- Generous Backer | 679
Lopy napsal(a):
- stáhnul jsem si nějaké příklady a testuji – pokud zadám špatně jméno souboru, nevyskočí JS okno ale input 2× červeně problikne a napíše message. Jakým způsobem si vytvářet tyto message?
Tohle vypadá na vlastnost prohlížeče – pravděpodobně kontroluje, zda zadaný soubor existuje, a pokud ne, upozorní tě na to, protože nemá, co by odeslal. Tuším, že Opera takto upozorňuje (jak jsou na tom ostatní prohlížeče mi není známo).