0
私はこのモデルをピボットテーブルに同期させることができる2台のモデルがsave
である要求コントローラを持っています。私はまだコントローラの2つのモデルのどれを同期させるのか分かりません。私はDocuments
とApproves
M持つ:ピボットテーブルとMの関係approve_document
2台のモデルを保存してピボットテーブルに同期する
モデル
ドキュメント:
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
を投げつけます。私のエラーを訂正する助け?
更新
はあなたが – jaysingkar
する必要はありませんありませんが、あなたはこのエラーを取得している確認することができますか? – jaysingkar
申し訳ありませんApproveモデルのインスタンスをコメントアウトしていることに気付かなかった。私は誤りがあります。 Approveモデルの現在のIDを取得しません。 '整合性制約違反:1452子行を追加または更新できません:外部キー制約が失敗しました(' webdev''approve_document'、CONSTRAINT 'approve_document_approve_id_foreign')FOREIGN KEY(' approve_id')REFERENCES '承認 '(' id')ON DELETE – Francisunoxx