4.1 Adat ellenőrzés
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Az adatok ellenőrzése minden alkalmazás fontos összetevője, mivel abban segít, hogy a modell adatai eleget tesznek az alkalmazás elvárásainak. Például biztosítani akarjuk, hogy a jelszó legalább 8 karakter hosszú legyen, vagy, hogy a felhasználónév egyedi legyen. A validálási szabályok felállításával mindez sokkal sokkal könyebbé válik.
Sokféle módon megközelíthetjük az ellenőrzési eljárást. Amit ebben a részben leírunk az az ellenőrzés modell oldala. Röviden, hogy mi történik amikor meghívjuk a modell save() metódusát. Az ellenőrzési hibaüzenetek megjelenítésének részleteivel a FormHelper rész foglalkozik.
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array();
}
?>
<?phpclass User extends AppModel {var $name = 'User';var $validate = array();}?>
Ebben a példában a validate tömböt a User modellben használjuk, de nem tartalmaz ellenőrzési szabályokat. Feltéve, hogy a user táblában login, password, email és szuletes mezők szerepelnek az alábbi példa mutatja az ellenőrzési szabályokat.
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
'login' => 'alphaNumeric',
'email' => 'email',
'szuletes' => 'date'
);
}
?>
<?phpclass User extends AppModel {var $name = 'User';var $validate = array('login' => 'alphaNumeric','email' => 'email','szuletes' => 'date');}?>
Ez a példa bemutatja, hogy hogyan adhatunk hozzá különböző ellenőrzési szabályokat az egyes mezőkhöz. A login mezőnél csak számokat és betűket engedélyezünk, az emailnek valódinak kell lennie, a szuletes-nek pedig dátumnak kell lennie. Az ellenőrzési szabályok megadásával a CakePHP automatán megjeleníti a hibaüzeneteket amennyiben a megadott adat nem felel meg az ellenőrzésen.
A CakePHP sok ellenőrzési szabályt ismer amelyeket nagyon egyszerű használni. A beépített szabályok segítségével ellenőrizhetsz emailt, URL-t, hitelkártya számokat. Ennek részleteiről később lesz szó.
Itt egy összetettebb példa ami bemutatja a beépített ellenőrzési szabályok használatát
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
'login' => array(
'alphanumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'Csak számok és betűk'
),
'between' => array(
'rule' => array('between', 5, 15),
'message' => '5 és 15 karakter közötti hosszúság szükséges'
)
),
'password' => array(
'rule' => array('minLength', '8'),
'message' => 'Legalább 8 karakter hosszú legyen'
),
'email' => 'email',
'szuletes' => array(
'rule' => 'date',
'message' => 'Valódi dátumot kell megadni',
'allowEmpty' => true
)
);
}
?>
<?phpclass User extends AppModel {var $name = 'User';var $validate = array('login' => array('alphanumeric' => array('rule' => 'alphaNumeric','required' => true,'message' => 'Csak számok és betűk'),'between' => array('rule' => array('between', 5, 15),'message' => '5 és 15 karakter közötti hosszúság szükséges')),'password' => array('rule' => array('minLength', '8'),'message' => 'Legalább 8 karakter hosszú legyen'),'email' => 'email','szuletes' => array('rule' => 'date','message' => 'Valódi dátumot kell megadni','allowEmpty' => true));}?>
A login számára két szabályt adtunk meg, csak számokat és betűket tartalmazhat és a hosszúságának 5 és 15 karakter között kell lennie. A password mezőnek legalább 8 karakter hosszúak kell lennie, az email-nek valódinak, a szuletes-nek valódi dátumnak kell lennie. Figyeld meg, hogy hogyan adhatsz meg egyéni hibaüzeneteket amiket a CakePHP használni fog.
Ahogyan a fenti példa mutatja egy mezőhöz többféle ellenőrzési szabályt is rendelhetünk. Ezen felül ha a beépített ellenőrzési szabályok nem elegendőek akkor lehetőséged van egyéni szabályok megadására is.
Most, hogy láttad a teljes képet az ellenőrzés működéséről nézzük, hogy hogyan alkalmazzuk ezeket a modellben. Három különböző módon adhatunk meg ellenőrzési szabályokat: egyszerű tömbökkel, egyszerű szabály mezőnként, és többszörös szabályok mezőnként.
