Так что в laravel у меня есть hasMany отношение, Давайте называть его плодами. Пользователь может иметь только 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();
}
}
Что это делает, проверка, если фрукты выбор пуст, и если оно не, удалять существующие фрукты, связанные с пользователем и создать новые.
Это действительно уродливо, потому что я чувствую себя так, как будто это так. Я не был уверен, как проверить, существует ли идентификатор плода для этого пользователя, и если он его создает. Любая помощь будет оценена по достоинству.
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? –