4.1 Weryfikacja danych
Weryfikacja danych jest bardzo ważną częścią każdej aplikacji, ponieważ pomaga nam upewnić się że dane w Modelu spełniają nasze reguły. Na przykład, chcesz mieć pewność że wpisane hasło będzie mieć minimum 8 znaków, lub chcesz mieć pewność że nazwa użytkownika jest niepowtarzalna. Definiując reguły weryfikacji/walidacji pomagają nam w lepszej obsłudze formularzy, i wyświetlaniu wiadomość o błędach.
Jest wiele aspektów procesu weryfikacji. Ten dział obejmuje stroną Modelu. By zobaczyć więcej informacji o tym jak sobie razić z wyświetlaniem błędów, zobacz dział obejmujący FormHelper.
Pierwszym krokiem by zweryfikować dane jest utworzenie reguł/zasad w Modelu. By zrobić to, używamy tablice validate w definicji Modelu, na przykład:
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array();
}
?>
<?phpclass User extends AppModel {var $name = 'User';var $validate = array();}?>
W przykładzie powyżej, tablica $validate jest dodana do Modelu User, ale nie zawiera ona żadnych reguł weryfikacji. Zakładając że tabela użytkowników (users) zawiera pola login (nazwa użytkownika), password (hasło), email oraz born (data urodzenia), za pomocą poniższego przykładu możemy zastosować proste reguły weryfikacji danych dla tych pól:
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
'login' => 'alphaNumeric',
'email' => 'email',
'born' => 'date'
);
}
?>
<?phpclass User extends AppModel {var $name = 'User';var $validate = array('login' => 'alphaNumeric','email' => 'email','born' => 'date');}?>
Poprzedni przykład pokazuje jak reguły weryfikacji mogą być dodane do pól Modelu. Pole login, może zawierać tylko litery oraz cyfry, adres e-mail powinien być poprawny, oraz data urodzenia powinna zawierać poprawną datę. Definiowanie reguł weryfikacji/walidacji umożliwia Cake`owi na automatyczne pokazywanie wiadomości błędu w formularzu jeżeli przesłane dane nie spełniają zdefiniowanej reguły.
CakePHP posiada wiele reguł weryfikacji i używanie ich może być bardzo przydatne. Niektóre z wbudowanych reguł pozwalają na weryfikację formatu adresu e-mail, adresów URL, oraz numerów kart kredytowych – ale o tym napiszemy później.
Tutaj jest przykład bardziej złożonej weryfikacji/walidacji która korzysta z wbudowanych już reguł/zasad:
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
'login' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'Alphabets and numbers only'
),
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Between 5 to 15 characters'
)
),
'password' => array(
'rule' => array('minLength', '8'),
'message' => 'Mimimum 8 characters long'
),
'email' => 'email',
'born' => array(
'rule' => 'date',
'message' => 'Enter a valid date',
'allowEmpty' => true
)
);
}
?>
<?phpclass User extends AppModel {var $name = 'User';var $validate = array('login' => array('alphaNumeric' => array('rule' => 'alphaNumeric','required' => true,'message' => 'Alphabets and numbers only'),'between' => array('rule' => array('between', 5, 15),'message' => 'Between 5 to 15 characters')),'password' => array('rule' => array('minLength', '8'),'message' => 'Mimimum 8 characters long'),'email' => 'email','born' => array('rule' => 'date','message' => 'Enter a valid date','allowEmpty' => true));}?>
Dwie reguły są zdefiniowane dla pola login: nazwa użytkownika powinna zawierać tylko litery i cyfry, i długość powinna być pomiędzy 5 a 15. Pole hasło powinno zawierać minimum 8 znaków. Adres e-mail powinien być poprawny, i data urodzenia powinna być poprawną. Zauważ, również jak możesz zdefiniować określoną wiadomość błędu którą zostanie wyświetlona gdy reguła nie zostanie spełniona.
Tak jak pokazuje powyższy przykład, pojedyncze pole może posiadać wiele reguł walidacji. Jeżeli wbudowane reguły nie pasują do twoich kryteri, zawsze możesz dodać własne reguły weryfikacji jako wymagane.
Teraz gdy wiesz już o co biega i wiesz jak działa weryfikacja danych, zobaczmy jak te reguły są definiowane w Modelu. Są trzy różne sposoby które możesz używać by definiować reguły weryfikacji: prosta tablica, pojedyncza reguła na jedno pole, i wiele reguł na jedno pole.


























