2016-05-05 5 views
0

私はデータベース構造を下回っています。saveManyを使用して投稿データを保存する問題が発生しました

私はユーザーが多く、1人のユーザーに多数のパスポートがあるので、ユーザーhasManyパスポートとパスポート所属のような関係を作成しました。

ユーザーの詳細を更新すると、&は2〜3のパスポート番号を入力し、saveManyを使用してuser_passportテーブルにデータを保存しようとします。主キーIDとuser_idはデータベースに保存されていますが、パスポート番号はNULLです。保存プロセスは次のとおりです。

$user = $this->find($id); 
$user->passports()->delete(); 
$new[] = new UserPassport(['passport' => '123456789', 'created_by' => $user->id, 'updated_by' => $user->id]); 
$new[] = new UserPassport(['passport' => '111111111', 'created_by' => $user->id, 'updated_by' => $user->id]); 
$user->passports()->saveMany($new); 

誰かが同じ問題に直面した場合は、更新してください。

答えて

0

あなたが望むものを達成するためのより簡単な方法があります。あなたは、単にこのような何かを行うことができます:

$user->passports()->delete(); 

$user->passports()->create(['passport' => '123456789', 'created_by' => $user->id, 'updated_by' => $user->id]); 
$user->passports()->create(['passport' => '123456789', 'created_by' => $user->id, 'updated_by' => $user->id]); 

はええ、それは別のクエリを実行しますが、コードは非常に明確で読みやすいです。

+0

はい私は知っている、保存して、すでに私のために働いていますが、挿入のためにMysqlへの5-6のクエリを押す代わりにすべてのレコードを一緒に保存したいと思います。それがsaveManyが市場に出てくる理由です。 –

+0

「パスポート」フィールドがUserPassportクラス$ fillable配列で指定されているかどうかを確認してください。 –

+0

はいいいえ、そのfillableとfillableせずにそれを試して..しかし、結果は同じでした。 –

関連する問題