我正在尝试显示Laravel数据库中的订单。我有一个问题,因为它不起作用。
我想做什么:
显示每个用户的订单(在用户个人资料上)以及订单数据,商品数据,产品数据和属性数据。
这是我创建的ERD:
当前,我编写了此代码,由于它仅显示1个顺序和错误的属性,因此无法正常工作。
$products = Order::where('userid', $userId)->get();
foreach ($products as $product) {
$items = Item::where('order_id', $product->id)->get();
foreach ($items as $item) {
$productname = Product::where('id', $item->product_id)->get();
foreach ($items as $attribute) {
$attribute = Atribute::where('item_id', $attribute->id)->get();
}
}
}
return view('profile', compact('items', 'productname', 'attribute', 'user'));
}
如何显示用户在其个人资料上的订单?我在这里做错了什么?
答案 0 :(得分:0)
您嵌套的foreach太多了。
我在这里删除了foreach,只是将$attribute->id
更改为$item->id
。
foreach ($items as $attribute) {
$attribute = Atribute::where('item_id', $attribute->id)->get();
}
完整代码:
$products = Order::where('userid', $userId)->get();
foreach ($products as $product) {
$items = Item::where('order_id', $product->id)->get();
foreach ($items as $item) {
$productname = Product::where('id', $item->product_id)->get();
$attribute = Atribute::where('item_id', $item->id)->get();
}
}
return view('profile', compact('items', 'productname', 'attribute', 'user'));
您还应该查看Laravel Relationships,以使您整个过程更轻松。