В настоящее время у меня есть форма / представление, которое позволяет User
сохранить Order
.Это также обновляет сводную таблицу с соответствующими Product
s и qty
s.Что я пытаюсь сделать, так это после того, как эта информация введена и сохранена в базе данных, я хочу отправить пользователя на страницу оформления заказа, которая отображает всю информацию, которую он ввел для этого Order
.
Отношения
User hasMany Order
Order belongsToMany Product
Product belongsToMany Order
оформить заказ.blade.php
@foreach ($orders as $order)
@foreach ($order->products as $product)
<tr>
<td>{{ $product->name }}</td>
<td>{{ $product->pivot->qty }}</td>
</tr>
@endforeach
@endforeach
OrderController.php
public function checkout($id)
{
$user = Auth::user();
$user->load("orders.products"); //eager load pivot table
$orders = $user->orders->where('order_id', $id);
return view('orders.checkout', compact('orders', 'user'));
}
Я знаю, что я вызываю заказ неправильно, потому что, если я изменяю
$orders = $user->orders->where('order_id', $id);
до
$orders = $user->orders;
Он отображается правильно, за исключением, конечно, он заполняется каждой деталью Order
.
Или есть какой-то элегантный способ для меняпередать данные из функции checkout
без этого дополнительного запроса?(Я понимаю о перемещении данных в сеансах, но я работаю с сводной таблицей, и это усложняет ситуацию.