CakePHP 2.2.1 - 在表单上显示 CakePHP 错误 - 自定义验证

Posted

技术标签:

【中文标题】CakePHP 2.2.1 - 在表单上显示 CakePHP 错误 - 自定义验证【英文标题】:CakePHP 2.2.1 - Showing CakePHP error on form - custom validation 【发布时间】:2012-08-22 22:08:25 【问题描述】:

手动验证表单时出现一系列错误:

 $this->CalculationElement->set($this->request->data);
        if($this->CalculationElement->validates())
            WHEN OK...

        else
        debug($this->CalculationElement->invalidFields());
            die;
        

所以,使用 ->invalidFields() 我会得到一系列错误...如何在输入的底部显示它们,就像 Cakephp 在 $this->Model->save(); 上所做的那样?

我可以 $this->Model->set() 它们,但这又是 VIEW 中的一系列错误。

【问题讨论】:

如果您使用 FormHelper,它应该已经可以工作了 您不应该将 invalidFields() 与 validates() 或 save() 结合使用 - 否则您会验证两次,这可能会搞砸一切。使用$this->CalculationElement->validationErrors(不是方法)来获取错误信息。 【参考方案1】:

试试这个代码:

if ($this->CalculationElement->validates())
    //WHEN OK...

else

    $this->validateErrors($this->CalculationElement);
    $this->render();

【讨论】:

【参考方案2】:

在您的情况下,您似乎必须在视图中手动添加所有类和消息。

输入本身得到类“form-error” 在输入之后,您必须创建一个带有“错误消息”类的 div

<div class="error-message">$_your_error_message_from_the_array</div>

我认为这应该可以解决问题。

【讨论】:

以上是关于CakePHP 2.2.1 - 在表单上显示 CakePHP 错误 - 自定义验证的主要内容,如果未能解决你的问题,请参考以下文章

突出显示指定的表单字段-Javscript/CakePHP

cakephp saveMany 使用 $fieldList (无表单)

cakephp 表单验证成功类/消息

CakePHP 2.2:预填充 AJAX“更新”div?

CakePHP ajax 表单更新复制页面

复选框的 CakePHP 1.3 数据类型