Cake php - 保存HasMany关联

时间:2016-09-18 20:41:25

标签: cakephp

我在Projects& amp;之间创建了一个hasMany关联。评论表。

从这个url:/ projects / add,用户可以创建一个新项目并写几条评论。

请求返回如下数组:

[
    'name' => 'Project name',
    'comments' => [
        (int) 0 => [
            'text' => 'This is a comment on this project'
        ],
        (int) 1 => [
            'text' => 'Comment'
        ]
    ]
]

在验证者评论中,我添加了minLength 30规则。

在上面的示例中,验证程序将在第二个注释和块记录时返回错误。

我想要的是保存项目和好的评论,并返回如下错误:"该项目已保存,但未保存一条或多条评论"。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

This answer显示了一种方法来做你正在寻找的东西。如果相关模型存在验证错误,请尝试保存并取消绑定hasMany关系。

我认为尽管分割保存电话会更清晰。

if (!$this->Project->save($this->request->data['Project'])) {
    throw new Exception($this->Project->getErrors());
}

if (!$this->Project->Comment->save($this->request->data['Comment'])) {
    $message = 'The project has been saved, But one or more comment was not saved';
}