Aktualizacja
Aktualizacja do wersji 3.3
- automatyczna ochrona przed CSRF przeszła z
isSameSite()naisFrom(FetchSite::SameOrigin)i stała się surowsza: żądania przychodzące z subdomen już nie przechodzą - dzięki temu
addProtection()nie jest już potrzebne, bo automatyczna ochrona pokrywa te same przypadki; w nowych formularzach je pomiń, a z istniejących śmiało usuń
Dlaczego tokeny w sesji nie są już potrzebne, wyjaśnia artykuł Ćwierć wieku CSRF.
Aktualizacja do wersji 3.1
getValues()zwraca tylko zwalidowane elementy; jeśli potrzebujesz wartości wszystkich elementów niezależnie od walidacji, użyj nowej metodygetUntrustedValues()$valuesprzekazywane do handlerówonSuccessionClickzawierają tak samo tylko zwalidowane elementy- samodzielne formularze są automatycznie chronione przed CSRF za pomocą cookie z flagą SameSite; wysyłanie z innego
origin możesz dopuścić metodą
allowCrossOrigin() - reguła
Form::URLuzupełnia teraz brakujący protokół jakohttpszamiasthttp Form::addImage()zostało przemianowane naaddImageButton()Checkbox::getSeparatorPrototype()zostało przemianowane nagetContainerPrototype()- formularze nie tworzą już w szablonach zmiennej
$_form
Więcej o tych zmianach w artykule Nowości w Nette Forms 3.1.
Aktualizacja do wersji 3.0
- wszystkie elementy formularza są teraz domyślnie opcjonalne (ta zmiana pojawiła się w Nette 2.4), więc
setRequired(false)możesz usunąć - koniecznie zaktualizuj
netteForms.jsdo wersji 3 (npm install nette-forms) ChoiceControl::$checkAllowedValuesiMultiChoiceControl::$checkAllowedValueszostały zastąpione metodącheckDefaultValue()
Aktualizacja do wersji 2.4
- jeśli element ma regułę dodaną przez
addRule()(czyli jest faktycznie obowiązkowy), musisz oznaczyć go jako obowiązkowy także przezsetRequired(); poza tymsetRequired(false)czyni teraz element opcjonalnym, co zastępuje gałęzieaddCondition($form::FILLED) - walidatory
Form::EMAIL,URLiINTEGERautomatycznie zmieniają atrybut HTMLtypeodpowiednio naemail,urlinumber - negatywne reguły walidacyjne są przestarzałe; alternatywą dla
~Form::FILLEDjestForm::BLANK, a~Form::EQUALmożesz zastąpić przezForm::NOT_EQUAL - wewnętrzny parametr
dojest teraz wysyłany metodą POST jako_do, żeby uniknąć kolizji - wewnętrzne zmienne z podkreśleniem, takie jak
$_form, są przestarzałe - pamiętaj o aktualizacji
netteForms.js
Aktualizacja do wersji 2.3
- wewnętrzne metody filtrujące, takie jak
Nette\Forms\Controls\TextBase::filterFloat, zostały usunięte - wewnętrzne metody walidacyjne, takie jak
TextBase::validateFloat, zostały przeniesione doNette\Forms\Validator, podobnie jakRules::$defaultMessages - Buttony i pola Hidden są generowane bez HTML-owego ID; jeśli chcesz ID, ustaw je metodą
setHtmlId() - pozycje RadioList są również generowane bez ID; możesz je włączyć
przez
$radioList->generateId = true - filtry dodane przez
TextBase::addFilter()są przetwarzane podczas walidacji, a filtry możesz teraz dodawać do warunków:$input->addCondition(...)->addFilter(...)