Upgrade
Upgrade na verzi 3.3
- automatická ochrana proti CSRF přešla z
isSameSite()naisFrom(FetchSite::SameOrigin)a je přísnější: requesty přicházející ze subdomén už neprojdou - díky tomu už není potřeba
addProtection(), protože automatická ochrana kryje totéž; u nových formulářů jej vynechte a ze stávajících ho můžete mazat
Proč už tokeny v session nejsou potřeba, vysvětluje článek Čtvrt století s CSRF.
Upgrade na verzi 3.1
getValues()vrací jen validované prvky; pokud potřebujete hodnoty všech prvků nezávisle na validaci, použijte novou metodugetUntrustedValues()- pole
$valuespředávané handlerůmonSuccessaonClickrovněž obsahuje jen validované prvky - samostatně používané formuláře jsou automaticky chráněny proti CSRF pomocí cookie s příznakem SameSite; odeslání
z jiné domény povolíte metodou
allowCrossOrigin() - pravidlo
Form::URLnyní doplňuje chybějící protokolhttpsmístohttp Form::addImage()bylo přejmenováno naaddImageButton()Checkbox::getSeparatorPrototype()bylo přejmenováno nagetContainerPrototype()- formuláře již nevytvářejí v šabloně proměnnou
$_form
Více o těchto změnách v článku Novinky v Nette Forms 3.1.
Upgrade na verzi 3.0
- všechny formulářové prvky jsou nyní ve výchozím nastavení volitelné (tato změna byla zavedena v Nette 2.4), takže
můžete odstranit
setRequired(false) - nezapomeňte aktualizovat soubor
netteForms.jsna verzi 3 (npm install nette-forms) - proměnné
ChoiceControl::$checkAllowedValuesaMultiChoiceControl::$checkAllowedValuesbyly nahrazeny metodoucheckDefaultValue()
Upgrade na verzi 2.4
- pokud má prvek nastaveno pravidlo přes
addRule()(tedy je efektivně povinný), musíte jej také označit jako povinný pomocísetRequired(); dálesetRequired(false)nyní udělá prvek volitelný, čímž lze nahradit větveaddCondition($form::FILLED) - validátory
Form::EMAIL,URLaINTEGERautomaticky mění HTML atributtypenaemail,url, resp.number - negativní validační pravidla jsou zastaralá; alternativou
~Form::FILLEDjeForm::BLANKa~Form::EQUALlze nahradit zaForm::NOT_EQUAL - interní parametr
dose nyní u formulářů posílaných přes POST jmenuje_do, aby nedocházelo ke kolizi - interní podtržítkové proměnné jako
$_formjsou zastaralé - nezapomeňte aktualizovat
netteForms.js
Upgrade na verzi 2.3
- interní filtrovací metody jako
Nette\Forms\Controls\TextBase::filterFloatbyly odstraněny - interní validační metody jako
TextBase::validateFloatbyly přesunuty doNette\Forms\Validator, stejně jakoRules::$defaultMessages - tlačítka a skrytá pole se generují bez HTML ID; pokud ID chcete, nastavte ho přes
setHtmlId() - položky RadioListu se rovněž generují bez ID; můžete ho zapnout
přes
$radioList->generateId = true - filtry přidané přes
TextBase::addFilter()se zpracovávají během validace a filtry nyní můžete přidávat i k podmínkám:$input->addCondition(...)->addFilter(...)