我有一个请求控制器,有两个Model save
,我可以将它同步到我的数据透视表中。我仍然不知道我将如何同步控制器中的两个模型中的一个。我与Documents
Approves
和approve_document
M:M关系
模型
文件:
public function approves()
{
return $this->belongsToMany('App\Models\Document', 'approve_document');
}
批准:
public function pendingDocuments()
{
return $this->belongsToMany('App\Models\Document', 'approve_document');
}
控制器:
$document = new Document();
$approve = new Approve();
//Request in the form
$document->title = $request->title;
$document->content = $request->content;
$document->category_id = $request->category;
$approve->approver_id = $request->approver;
$approve->save();
$document->save();
$document->approves()->sync([$approve],false);
老实说,我仍然不知道我应该把什么放在我的sync
数组中。它给我一个错误Illegal offset type
。有任何帮助来纠正我的错误吗?
更新
答案 0 :(得分:1)
sync()
方法接受要附加的模型的ID。
因此,在您的情况下,sync()
方法需要id
模型的approve
。
$document->approves()->sync([$approve->id],false);
//assuming id is the PK for your Approve model