保存两个模型以同步到数据透视表

时间:2016-08-14 20:10:00

标签: php laravel eloquent laravel-5.2

我有一个请求控制器,有两个Model save,我可以将它同步到我的数据透视表中。我仍然不知道我将如何同步控制器中的两个模型中的一个。我与Documents

Approvesapprove_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。有任何帮助来纠正我的错误吗?

更新

enter image description here

1 个答案:

答案 0 :(得分:1)

sync()方法接受要附加的模型的ID。

因此,在您的情况下,sync()方法需要id模型的approve

$document->approves()->sync([$approve->id],false);
//assuming id is the PK for your Approve model

参考: Inserting Related Models