Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Всем привет. Не могу записать дополнительные данные в pivot-таблицу.
В чем суть: добавляется в базу товар, помимо прочих полей указывается кол-во данного товара на данный момент на двух объектах продаж. Поэтому есть 3 таблицы: products, stores и product_store, которая, как понимаете, является связующей. Вот как она выглядит:
Отношения между моделями belongsToMany с указанием withPivot('amount'). Айдишники заходят хорошо, а вот как еще и данные amount записать не понимаю.
Подозреваю, что проблема кроется в неправильной обработке приходящего массива. Input выглядит следующим образом:
@foreach($stores as $store)
<div class="form-group">
<label for="{{ $store->name }}">Количество в {{ $store->name }}</label>
<input type="number" name="stores[{{ $store->id }}]" class="form-control" required>
</div>
@endforeach
Количество input-ов зависит от количества объектов продаж (stores). Т.о. было сформировано 2 поля, а dd($request) вернул следующие значения:
"stores" => array:2 [▼
1 => "10"
2 => "20"
]
Где store_id => amount.
Уважаемые разработчики, помогите решить проблему с записью amount в pivot таблицу. Заранее благодарю
Изменено MMysiv (22.02.2017 11:10:15)
Не в сети
https://laravel.ru/docs/v5/eloquent-rel … ps#вставка
создать связь
->create(['name' => 'store_name'] , ['amount' => $amount]);
присоединить
->attach($id, ['amount' => $amount]);
синхронизировать
->sync([$id1 => ['amount' => $amount1], $id2 => ['amount' => $amount1]]);
Не в сети