Обновление Laravel 5.1 многие-ко-многим

Я пытаюсь обновить записи в сводной таблице, используя Eloquent в Laravel 5.1.

У меня есть 3 таблицы: pages, resources и стержень pages_resources, Это методы отношений:

Модель Page.php

public function resources()
{
return $this->belongsToMany('App\Resource', 'pages_resources', 'id_page', 'id_resource')
->orderBy('ordering', 'asc');
}

Модель Resource.php

public function page()
{
return $this->belongsToMany('App\Page', 'pages_resources', 'id_resource', 'id_page');
}

Теперь я получаю список ресурсов из запроса AJAX POST и хочу изменить их порядок. Я использую findMany Способ получения коллекции:

$resources = Resource::with('page')->findMany($request->get('order'));
$resources->each(function ($item, $key) {
// Working on $item here
});

и вот где я в тупике. Я пробовал оба sync()

  $item->page()->sync([$item->id => ['ordering' => $key+1]], false));

а также updateExistingPivot()

 $item->page()->updateExistingPivot($item->id, ['ordering' => $key+1], false);

и хотя первое дает неправильные результаты, последнее не работает по событию (однако сообщение об ошибке не получено. Оно просто молча терпит неудачу);

Использование sync () всегда заканчивается созданием новой записи в сводной таблице с правильным значением для столбца «упорядочивание», но с неправильным значением для ключей. Я попытался использовать что-то другое, чем $ item-> id (который отображается на «id_resource»), но безрезультатно.

Я мог бы сделать что-то не так, хотя отношения выглядят правильно, так как объект Resource имеет

#relations: array:1 [
"page" =>

коллекция, а коллекция страниц в свою очередь показывает сводку:

#relations: array:1 [
"pivot" => Pivot {#318

Как я могу обновить запись сводной таблицы?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]