Циклический просмотр результатов базы данных выполняется только один раз - PullRequest
0 голосов
/ 07 мая 2018

Я обрабатываю запрос ajax и запрашиваю базу данных в моем контроллере.

Контроллер:

    $prod_id = $request->prod_type;

    $data = types::where('id', $prod_id)->with('products')->get(); 

    return view('pages.types')->with('data',$data);

Когда возвращается $data, отображаются все продукты, основанные на запросе type из базы данных. Однако при циклическом просмотре $data, на мой взгляд, цикл повторяется только один раз и отображает только одну карту.

Вид:

            @foreach($data as $type )
        <div class="col-sm-3 mb-3">
            <div class="card h-100">
                <div class="card-body">
                    <h4 class="card-title"><a href="/products/{{$type->products[0]->id}}">{{$type->products[0]->Product_Name}}</a></h4>
                    <p class="card-text">...</p>                        
                 </div>
            </div>
        </div>
        @endforeach

Я понимаю, что запрашиваю только первый объект с products[0], но если его опустить, я получаю property[id] does not exists in collection instance error.

1 Ответ

0 голосов
/ 07 мая 2018

Я думаю, что вы зацикливаетесь на типе, но на самом деле вы хотите зацикливаться на продуктах. Попробуйте это:

@foreach($data[0]->products as $product )
<div class="col-sm-3 mb-3">
    <div class="card h-100">
        <div class="card-body">
            <h4 class="card-title"><a href="/products/{{$product->id}}">{{$product->Product_Name}}</a></h4>
            <p class="card-text">...</p>                        
         </div>
    </div>
</div>
@endforeach

UPDATE:

Хорошо, я обновил пример кода, чтобы он просто зацикливался на продуктах первого Type объекта - я полагаю, это то, что вам нужно, так как похоже, что Контроллер получает только один тип?

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