У меня есть следующие таблицы:
заказы : идентификатор и т. Д. *
строки заказа : идентификатор, идентификатор заказа, идентификатор продукта и т. Д. ...
продукты : идентификатор, имя и т. Д. *
Внешние ключи определены.
Мои модели Laravel определены как:
class Order
public function orderLine()
{
return $this->hasMany('App\OrderLine');
}
class OrderLine
public function order()
{
return $this->belongsTo('App\Order');
}
public function product()
{
return $this->belongsTo('App\Product');
}
class Product
public function orderLine()
{
return $this->hasMany('App\OrderLine');
}
Я много чего пробовал, но ничего не получается. Вот лучшее решение для меня, но оно не работает.
class OrderController
public function show($id)
{
$user = Auth::user();
$order = Order::where('user_id', '=', $user->id)->with(['orderLine.product'])->findOrFail($id);
return view('layouts/order/index', compact('order'));
}
Я изо всех сил пытаюсь отобразить следующие данные в представлении:
@foreach($order->orderLine as $key => $orderLine)
<tr>
<td>{{$orderLine->product->name}}</td>
<tr>
@endforeach
Объект продукта не загружен. Я хочу отобразить название продукта в вышеуказанном цикле.