Forms 验证失败时,错误消息不适用于一个模型
我有一个表单,它调用两个不同的模型。我的验证工作正常,因为输入错误的数据无法通过验证;但是,错误消息仅显示在相关模型数据上。以下是我的两个模型的表单片段:Forms 验证失败时,错误消息不适用于一个模型,forms,cakephp,model,validation,cakephp-2.0,Forms,Cakephp,Model,Validation,Cakephp 2.0,我有一个表单,它调用两个不同的模型。我的验证工作正常,因为输入错误的数据无法通过验证;但是,错误消息仅显示在相关模型数据上。以下是我的两个模型的表单片段: echo $this->Form->input('Location.exchange', array('size'=>'3', 'error' => array('class' => 'error'))); echo $this->Form->input('Location.sln', array('
echo $this->Form->input('Location.exchange', array('size'=>'3', 'error' => array('class' => 'error')));
echo $this->Form->input('Location.sln', array('size'=>'4', 'error' => array('class' => 'error')));
echo '<br />';
echo $this->Form->input('unit_website', array('size'=>'65', 'label'=>'Your unit\'s website', 'error' => array('class' => 'error')));
echo '<br />';
echo $this->Form->input('specials', array('size'=>'65', 'label'=>'Your website\'s Specials page', 'error' => array('class' => 'error')));
echo '<br />';
下面是我的位置模型和单元模型中的验证数组片段:
(来自模型单元):
(来自模型位置):
如果查看Model->read()函数,您将看到它以
$this->validationErrors = array();
那么这条线呢
Set::merge($this->Unit->read(), $this->request->data);
清除验证错误如果查看Model->read()函数,您将看到它以
$this->validationErrors = array();
那么这条线呢
Set::merge($this->Unit->read(), $this->request->data);
清除验证错误Heh。从未想过查看read()函数的实际定义。好的,现在我明白了;我的问题是,如果没有merge()方法,我无法保留整个数据数组,以便用户更正错误并正确更新记录。关于此问题的解决方法有何建议?如果不修改
$this->request->data
的内容,则当验证失败时,表单中提交的所有内容都应再次可用。无论如何,我想使用find()
而不是read()
应该可以保留验证错误。我一直坚持使用merge()函数,因为我实际上丢失了表单中未使用的模型的所有数组数据,如中所示。以前它曾引起过一个问题,但后来我改变了我的编辑页面,所以这不再是一个问题。所以我还是可以去掉这条线。谢谢你!呵呵。从未想过查看read()函数的实际定义。好的,现在我明白了;我的问题是,如果没有merge()方法,我无法保留整个数据数组,以便用户更正错误并正确更新记录。关于此问题的解决方法有何建议?如果不修改$this->request->data
的内容,则当验证失败时,表单中提交的所有内容都应再次可用。无论如何,我想使用find()
而不是read()
应该可以保留验证错误。我一直坚持使用merge()函数,因为我实际上丢失了表单中未使用的模型的所有数组数据,如中所示。以前它曾引起过一个问题,但后来我改变了我的编辑页面,所以这不再是一个问题。所以我还是可以去掉这条线。谢谢你!
Set::merge($this->Unit->read(), $this->request->data);