关于 beforesave 模型回调的 Cakephp 2 验证消息

Cakephp 2 validation message on beforesave model callback

我正在使用 CakePhp 2.5,并且在 beforeSave 模型回调中,如果未提供某些信息 (MyIndex),我会 return false。

如何显示错误消息?

我试试 :

$this->validationRuleErrors = 'You need to choose MyIndex'; 

但是没有看到任何报错信息。

if( in_array( 'MyIndex', array_keys( $this->data) ) == FALSE )
{
            $this->validationRuleErrors = 'You need to choose MyIndex';
            debug($this->validationErrors);
            return false;
}

beforeSave 中设置的 validationErrors 属性 可以从您的控制器访问。

示例控制器:

try {
    $this->Model->save($data);
    if (!empty($this->Model->validationErrors)) {
        // just echo $this->Model->validationErrors if you don't want to use an exception
        throw new Exception($this->Model->validationErrors);
    }
} catch (Exception $e) {
    $this->data = [
        'success' => false,
        'message' => $e->getMessage()
    ]
}