cakephp验证没有save()

lol*_*ola 4 validation cakephp

我正在尝试使用CakePHP验证而不使用save().但它总是会返回错误.我插入文本,但验证说它是空的.为什么?

我的型号:

var $validate = array(
    'm_subject' => array(           
        'empty' => array(
            'rule' => 'notEmpty',
            'required' => true,
            'allowEmpty' => false,
            'message' => 'Subject is empty',
        )
    ),
    'm_text' => array(
        'empty' => array(
            'rule' => 'notEmpty',
            'required' => true,
            'allowEmpty' => false,
            'message' => 'Text is empty',
        )
    )
);
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

$this->Admin->set($this->data);
if($this->Admin->validates($this->data, array('m_subject', 'm_text'))) {
    //OK
}
else {          
    $errors = $this->Admin->invalidFields();
    pr($errors); //Always returns "Subject is empty" and "Text is empty".
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*ost 10

CakePHP 2.0CakePHP 1.3中

$this->ModelName->validates();如果要传递任何数据,则不会获取数据数组validates()是一个选项数组,然后由modelCallback处理beforeValidates()

如果您想确定数据是否有效,请尝试使用此逻辑:

$this->ModelName->set($this->data);
if ($this->ModelName->validates()) {
    // Data Validated
} else {
    // Data Not Validated
}
Run Code Online (Sandbox Code Playgroud)