Laravel показывает заказы с предметами, атрибутами и продуктом - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь показать заказы из базы данных в 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 голосов
/ 14 июня 2019

Ты слишком много вкладывал свои передние части.

Я удалил здесь 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...