Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Подскажите, как обновить дополнительные данные в pivot таблице и есть ли возможности их синхронизации?
Есть таблица posts и есть таблица properties, связь ManyToMany, в pivot таблице есть еще колонка value
В модели Post:
public function properties()
{
return $this->belongsToMany('App\Property')->withPivot('value');
}
Пробую обновить так
$post->properties()->updateExistingPivot($post_id, [
'property_id' => $property_id,
'value' => $value
]);
где $post_id - id поста,
$property_id - id свойства property
$value - значение свойства
Ошибок никаких нет, но и обновления не происходит. Понятно что можно вручную sql запросом обновить, но должен же быть способ обойтись и без него в Laravel 5.16
Не в сети
Может кому пригодится, сделал так:
В модели Post добавил метод:
public function updateProps(array $properties)
{
foreach ($properties as $property_id=>$value) {
\DB::table('post_property')
->where('post_id', $this->id)
->where('property_id', $property_id)
->update(['value' => $value]);
}
}
В контроллере PostsController вызов такой:
$post->updateProps([$property_id=>$value]);
Не в сети
Страницы 1