Добрый день.
Существует 2 модели:
1) Products
<?php
class Product extends Model
{
public function options()
{
return $this->belongsToMany(Option::class)
->withPivot('status')
;
}
}
2) Options
<?php
class Option extends Model
{
public function products()
{
return $this->belongsToMany(Product::class)
->withPivot('status')
;
}
}
Между ними установлена связь много ко многим через сводную таблицу. В сводной таблице имеется дополнительное поле - status.
Также имеется массив id таблицы options. Как всем связанным записям (указанных в массиве) из сводной таблицы изменить status (одинаковый)?
Использование метода syncWithoutDetaching статус не устанавливает.
Метод attach добавляет новые записи, sync - удаляет не переданные в массиве, save и update - работает для каждой отдельной записи через...
<?php
$product->options()->syncWithoutDetaching($ids, ['status' => 0]);
$product->options()->whereIn(
'options.id',
$product->options->pluck('id')->diff($ids)
)->get();
Есть ли какой-нибудь способ?