我正在向用户的控制器发送请求。这两种方法都返回相同的结果:
$this->User->validates();
或
$this->User->set($this->request->data);
$this->User->validates();
是因为cakephp
正在对请求数据执行默认验证吗?
如何执行自定义验证?我是否需要设置新的数据值?
答案 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,
),
),
);