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);