假设我有一个数组:
array(
'Foo' => array(
'field1' => 'value1',
'field2' => 'value2'
),
'Bar' => array(
'field1' => 'value1',
'field2' => 'value2'
)
)
其中Foo
和Bar
建立了模型关系,在模型中有各自的验证条件。
我怎么做呢?如果我在做$this->Foo->save();
,即使Bar
没有通过验证,它仍然会继续,只保存Foo
$this->Foo->unbindModel(array('hasAndBelongsToMany' => array('Bar')), true);
最后做了这样的事情:
如果初始保存失败,检查Bar
是否存在验证错误,如果有,则取消设置栏并再次保存$data
中仅存在Foo
if ($this->Foo->save($data)) {
//success
} else {
$errors = $this->Foo->invalidFields();
if (!empty($errors['Bar'])) {
unset($data['Bar']);
}
//retry save
if ($this->Foo->save($data) {
//success
} else {
//failure
}
}