LARAVEL | Как обновить значение в промежуточной таблице

140
24 декабря 2019, 02:10

Имеется таблица следующего типа:

Schema::create('items_options', function (Blueprint $table) {
    $table->integer('item_id');
    $table->integer('option_id');
    $table->integer('sort')->nullable();
    $table->string('value')->nullable();
});

В форме идёт выборка данных опций:

<select name="options[]" multiple>
    @foreach ($options as $option)
        <option value="{{ $option->id }}">{{ $option->name }}</option>
    @endforeach
</select>

После обновления появляется поле для ввода:

<input type="text" name="option[{{ $option->id }}]" value="{{ $option->value }}">

Собственно сам вопрос, как записать значение в промежуточную таблицу если она уже была создана и item был присоединён к option а значение хотелось бы менять в ходе работы, а не при соединении.

Вот ссылка на первоисточник, всё предельно понятно, но как связать с последующим обновлением не совсем.. ПЕРВОИСТОЧНИК

(используется связь многие ко многим - belongsToMany)

Answer 1

Записываете полученные данные в переменную, например:

$attributes = ['value' => $request->value];

Затем обновляете промежуточную таблицу:

Item::find($item_id)->options()->updateExistingPivot($option_id, $attributes);

Проверьте, чтобы была объявлена связь многие-ко-многим с промежуточными данными:

// App\Item
public function options()
{
    return $this->belongsToMany('App\Option')->withPivot('sort','value');
}
READ ALSO
PhpOffice неправильная кодировка

PhpOffice неправильная кодировка

ЗдраствуйтеИспользуя библиотеку PhpOffice (PhpSpreadsheet), вывожу данные в csv файл

140
токен от API webmaster.yandex.ru

токен от API webmaster.yandex.ru

Уточните пожалуйста: Зарегистрировал приложение в oauthyandex

170
Как извлечь параметры headers c multi curl?

Как извлечь параметры headers c multi curl?

Код показывает полученный header(хотя нигде нет echo, print

158
Подсчет сессий на всем сайте

Подсчет сессий на всем сайте

Подскажите пожалуйста, есть такой код который подсчитывает сессии на сайтеВ данный момент считает количество открытых сессий на каждой...

142