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:

More information about translations

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();
}
?>
  1. <?php
  2. class User extends AppModel {
  3. var $name = 'User';
  4. var $validate = array();
  5. }
  6. ?>

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'
    );
}
?>
  1. <?php
  2. class User extends AppModel {
  3. var $name = 'User';
  4. var $validate = array(
  5. 'login' => 'alphaNumeric',
  6. 'email' => 'email',
  7. 'szuletes' => 'date'
  8. );
  9. }
  10. ?>

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

        )

    );

}

?>


  1. <?php
  2. class User extends AppModel {
  3. var $name = 'User';
  4. var $validate = array(
  5. 'login' => array(
  6. 'alphanumeric' => array(
  7. 'rule' => 'alphaNumeric',
  8. 'required' => true,
  9. 'message' => 'Csak számok és betűk'
  10. ),
  11. 'between' => array(
  12. 'rule' => array('between', 5, 15),
  13. 'message' => '5 és 15 karakter közötti hosszúság szükséges'
  14. )
  15. ),
  16. 'password' => array(
  17. 'rule' => array('minLength', '8'),
  18. 'message' => 'Legalább 8 karakter hosszú legyen'
  19. ),
  20. 'email' => 'email',
  21. 'szuletes' => array(
  22. 'rule' => 'date',
  23. 'message' => 'Valódi dátumot kell megadni',
  24. 'allowEmpty' => true
  25. )
  26. );
  27. }
  28. ?>

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.