User Code List
PHP ---New Snippet ---New Snippet ---Symfony ------Tworzenie projektu ---------New Snippet ------Doctrine zamiast Propel ------często używane itp ---SVN ------SVN tortoise-nowy proj ------New Snippet ------Z tutoriala jobeet ---Yii ------1. Szkielet aplikacji ------2. Yiic na skróty ------3. Ustawienia bazy danych ------4. Scaffolding, CRUD, model tabeli db ------5. Uwierzytalenianie ------6. Model, rules() ------7. Model, safeAttributes() ------8. Model, relations() ------9. Kontroler, kontrola dostępu ------10. Model, zapisywanie, pobieranie elementów ------11. Formularze, budowa, przetwarzanie ------12. Szablony, widoki, partiale ------13. Themes, layouts ------ 5.1. Tworzenie widgetu logowania ------14. Ściąga, często używane itp cz.1 ------15. Jak wykonać stronicowanie danych (pager) ------16. AJAX, aktualizowanie tresci po kliknieciu w button ---------New Snippet ------17. AJAX, aktualizowanie tresci po kliknieciu w cokolwiek ---------New Snippet ------18. Przetwrzanie danych z formularzy ------18. AJAX w AJAX, budowanie linków itp ---Konwersja systemu kodowania na inny Apache ---Wirtualny host dla projektu New Snippet ---New Snippet JS ---Podświetlanie kontenera pola input
|
| |
|
| |
6. Model, rules() |
| |
Model i zasady sprawdzania poprawności wprowadzanych danych
Do sprawdzania zasad poprawności danych wprowadzanych przez użytkowników służy metoda rules(). Określamy w niej np to, które pola są wymagane (required), maksymalną długość dla pół będących ciągami znaków ('length', 'max'=>128), zakresy liczbowe jakie może przyjąć dany atrybut w przypadku gdy jest atrybutem typu liczbowego ('in', 'range'=>array(0, 1, 2)), wzorzec w postaci wyrażenia regularnego jaki musi spełniać dany atrybut ('match', 'pattern'=>'/^[ws,]+$/'). Przykła metody rules() poniżej (na podstawie aplikacji bloga): public function rules() { return array( array('title, content, status', 'required'), array('title', 'length', 'max'=>128), array('status', 'in', 'range'=>array(0, 1, 2)), array('tags', 'match', 'pattern'=>'/^[ws,]+$/', 'message'=>'Tagi mogą posiadać wyłącznie znaki słów.'), ); } Atrybuty, których wartości nie pochodzą od użytkownika a więc nie są wprowadzane w formularzach tylko ustawiane przez aplikację (np. id, createTime, updateTime) nie podlegają sprawdzaniu przez metodę rules(). A więc rules() sprawdza tylko te dane które pochodzą od użytkowników (z formularzy). Reguły poprawności zawarte w metodzie rules() wykorzystywane są podczas wywołania metody save() lub validate() instancji modelu. Więcej informacji o budowie reguł walidacji pod tym adresem http://www.yiiframework.com/doc/guide/form.model#declaring-validation-rules |
| |
Sub-Article List
|
|