zoukankan      html  css  js  c++  java
  • cakephp 数据校验

    下内容,多数为cakephp1.2手册内容。

    模型的校验,本质上就是当你调用模型上的save()时所发生的事情。要学习怎么处理错误信息显示,请 查看FormHelper节的描述.

    数据校验的第一步是创建模型校验规则。方法是在模型定义文件中使用Model::validate数组,例如:

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

    在上面的例子中, $validate数组被加入到了User模型,但是这个数组包含了校验规则。假设用户表有login, password, email和born字段,下面的例子告诉你怎么应用一些简单的规则到这些字段:

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

    上面的例子告诉你这些校验规则怎么加入到这些字段. 对于login字段, 仅仅接收数字和字符, email应该是一个有效的eamil并且born应该是一个有效的日期。当用户提交的数据不符合所定义的规则,CakePHP校验机制就能神奇地显示相 应的错误信息。

    上述的实例较为简单,下面请看更加复杂的事例 。

    1. <?php
    2. class User extends AppModel {
    3. var $name = 'User';
    4. var $validate = array(
    5.   'login' => array(   //login字段校验规则
    6. 'alphanumeric' => array(
    7. 'rule' => 'alphaNumeric',
    8. 'required' => true,
    9.  'message' => 'Alphabets and numbers only'
    10. ),
    11. 'between' => array(
    12. 'rule' => array('between', 5, 15),
    13. 'message' => 'Between 5 to 15 characters'
    14. )
    15. ),
    16.   'password' => array( //password字段规则
    17. 'rule' => array('minLength', '8'),
    18. 'message' => 'Mimimum 8 characters long'
    19. ),
    20.   'email' => 'email', //email字段规则
    21.   'born' => array(  //born字段规则
    22. 'rule' => 'date',
    23. 'message' => 'Enter a valid date',
    24. 'allowEmpty' => true
    25. )
    26. );
    27. }
    28. ?>

    代码说明:

    1.login字段定义了两个校验规则:一个是alphanumeric,要求输入只能包含字母和数字,另一个规则是between, 要求输入的长度在5到15之间;

    2.password字段要求最少8个字符;email应该是一个有效的email;

    3.born必须是一个有效的日期。

    4.注意上面 的例子还描述了当校验失败时如果显示定制的出错信息。

    5.正像上面例子指出的,一个field可以有多个校验规则。并且如果内建规则不满足你的要求,你可以加自己的校验规则。

    总结:

    现在,你已经看到了校验规则的大概工作原理。让我们看看这些规则是怎么定义的吧。有3种方法定义校验规则:

    1. 简单数组
    2. 每个字段一个规则
    3. 每个字段多个规则

  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/xhiyu/p/2095423.html
Copyright © 2011-2022 走看看