CakePHP Model-> invalidate不显示错误

lin*_*ndy 8 validation cakephp

我目前正在beforeValidate()模型的回调中对表单进行一些额外的验证.

我有以下代码:

function beforeValidate(){
    $i = 0;
    foreach($this->data['CapitalCategory'] as $capital_category){
        if(!empty($capital_category['value'])){
            $this->invalidate('CapitalCategory.'.$i.'.points', 'error!');   
                return false;
            }

        $i++;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我调试了所有内容,如果值存在,它会返回false.但是,表单重新加载,并且点输入下方没有显示任何消息!此外,如果我调试validationErrors,该数组包含需要显示的错误.可能是什么问题呢?

感谢任何帮助!

编辑

这是我构建输入的方式:

echo $this->Form->input('CapitalCategory.'.$i.'.value', array('label' => $category['Category']['name'], 'type' => 'text'));
        echo $this->Form->input('CapitalCategory.'.$i.'.points', array('label' => 'Puncte', 'type' => 'text'));
Run Code Online (Sandbox Code Playgroud)

我相信一个问题可能是我正在使用CapitalModel,其中除了CapitalModel的一些字段之外,我还使用了其相关模型CapitalCategorieModel中的几个字段.这可能是未将验证错误绑定到字段的问题吗?如果是,我该如何解决?

Mou*_*bar 0

可能这是因为 CakePHP 不知道将错误消息放在哪里

当您调用时$this->invalidate ( $name );
$name必须与您创建的字段(输入)的名称匹配。

那么,您能告诉我您如何创建表单输入(字段)吗?