CakePHP - 如果关联模型验证失败,如何继续保存

时间:2015-08-04 11:54:52

标签: php cakephp

我们说我有一个数组:

array(
    'Foo' => array(
        'field1' => 'value1',
        'field2' => 'value2'
    ),
    'Bar' => array(
        'field1' => 'value1',
        'field2' => 'value2'
    )
)

FooBar设置了模型关系,并在模型中有自己的验证条件。

如果我$this->Foo->save(); Bar即使Foo未通过验证,我该怎样才能这样做呢?它仍会继续,只保存{{1}}

2 个答案:

答案 0 :(得分:0)

 $this->Foo->unbindModel(array('hasAndBelongsToMany' => array('Bar')), true);

答案 1 :(得分:0)

完成了这些方面的工作:

如果初始保存失败,请检查Bar是否存在验证错误,如果有,则取消设置栏并在Foo

中仅显示$data时再次保存
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
    }
}