Cakephp:默认验证

时间:2015-09-03 11:00:35

标签: cakephp

我正在向用户的控制器发送请求。这两种方法都返回相同的结果:

$this->User->validates();

$this->User->set($this->request->data);
$this->User->validates();

是因为cakephp正在对请求数据执行默认验证吗?

如何执行自定义验证?我是否需要设置新的数据值?

1 个答案:

答案 0 :(得分:0)

cakephp只有在模型中定义验证时才会验证。

这是一个如何在模型中设置验证的示例。

.navbar-default .navbar-nav .open .dropdown-menu li a,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus,
.navbar-default .navbar-nav .open .dropdown-menu{
  background: #279DDD;
  color: #fefefe;
}

如果你想要自己的验证,你可以这样做。

/**
     * Validation
     *
     * @var array
     * @access public
     */
    public $validate = array(
        'first_name' => array(
            'notEmpty' => array(
                'rule' => 'notEmpty',
                'message' => 'This field cannot be left blank.',
                'last' => true,
            ),
            'size' => array(
                'rule' => array('maxLength', 50),
                'message' => 'This field must be no larger than 50 characters long.'
            ),
        ),
        'last_name' => array(
            'size' => array(
                'rule' => array('maxLength', 50),
                'message' => 'This field must be no larger than 50 characters long.',
                'allowEmpty' => true,
            ),
        ),
        'username' => array(
            'notEmpty' => array(
                'rule' => 'notEmpty',
                'message' => 'This field cannot be left blank.',
                'last' => true,
            ),
            'size' => array(
                'rule' => array('maxLength', 255),
                'message' => 'This field must be no larger than 255 characters long.'
            ),
            'isUnique' => array(
                'rule' => 'isUnique',
                'message' => 'The username has already been taken.',
                'last' => true,
            ),
        ),
);

更多参考cakephp validation