Laravel用商品,属性和产品显示订单

时间:2019-06-14 07:35:15

标签: php laravel

我正在尝试显示Laravel数据库中的订单。我有一个问题,因为它不起作用。

我想做什么:

显示每个用户的订单(在用户个人资料上)以及订单数据,商品数据,产品数据和属性数据。

这是我创建的ERD: 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'));
}

如何显示用户在其个人资料上的订单?我在这里做错了什么?

1 个答案:

答案 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,以使您整个过程更轻松。

https://laravel.com/docs/5.8/eloquent-relationships