2017-10-19 5 views
1

多くの人と多くの人の関係でどのように挿入するのかを学習中です。現在、私は新しい項目を作成しようとすると、外部キー制約に陥ってしまいました。ルーメン:データを1対多に挿入するときの外部キー制約違反

私のコードは本当に簡単です:要求がアイテムIDを持っており、アイテムが存在する

$this->model->create(
    $request->all() 
); 

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 

これにはどのような解決策がありますか?

+0

我々がしようとしていますもう少しデータが必要です。テーブルの移行はどのように見えるのですか、リクエストには何が送信され、モデルはどのように見えますか? – Maantje

答えて

1

外部キーを指定する必要があります。たとえば、あなたが持っている場合、ユーザーは多くの記事の関係を持っており、あなたが新しい記事を挿入しようとしている、あなたはこれを実行する必要があります。

$user->articles()->create($request->all()); // Foreign key will be inserted automatically. 

または外部キーを指定します。

$this->article->create(array_merge(['user_id' => auth()->id()], $request->all())); 
+0

最初の例のように見えます。ありがとう、ありがとう。しかし、第二のものはdidntです。だから私は、ユーザーオブジェクトを持っていると関係を使用し、要求をすべて渡す場合は正常です。私の記事モデルを設定し、array_mergeまたは$ request-> allでuser_idを渡す場合、私はまだ外字制約を取得します。これは奇妙です... – NinetyHH

関連する問題