だからlaravelにはhasMany関係があります。それを果物と呼ぶことができます。 ユーザはフルーツ1個とプロフィールページにチェックボックスを1つだけ表示できます。現時点 で、私はこのコードLaravel hasMany更新関係
if (!empty($data['fruits'])) {
$fruits = $data['fruits'];
foreach($user->fruits as $i) {
$i->delete();
}
for($a=0;$a<count($fruits);$a++)
{
$AT = new Fruits;
$AT->user_id=$user->id;
$AT->fruit_id=$fruits[$a];
$AT->save();
}
}
を持っている果物の選択が空であり、それはイマイチ場合は、ユーザーに関連付けられている既存の果物を削除し、新しいものを作成した場合、これが何をやっていることは確認しています。
私はそれがそうであるように感じるので、これは本当に醜いです。果物のIDがそのユーザーのためにすでに存在しているかどうか、それが作成しているかどうかを確認する方法はわかりませんでした。 ご協力いただければ幸いです。
Schema::create('user_fruits', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('fruit_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('fruit_id')->references('id')->on('fruits')->onUpdate('cascade')->onDelete('cascade');
$table->timestamps();
});
、あなたのテーブルの移行ユーザーとフルーツを共有することができますか?テーブルフルーツでuser_idを検索する必要があり、存在しない場合は新しいテーブルを作成します。 –
@ Diego182ねえ、私はuser_fruitsテーブルを追加しました。 –
'hasMany'関係を格納するピボットテーブルメソッドを使用していますか? –