0

私は以下のデータベース構造を持っています。

私にはユーザーがいて、1 人のユーザーが多くのパスポートを持っているので、ユーザーが多くのパスポートを持ち、パスポートが尊敬されるモデルのユーザーに属しているような関係を作成しました。

ユーザーの詳細を更新すると、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);

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

4

1 に答える 1

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]);

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

于 2016-05-05T07:25:34.740 に答える