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