Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.03.2017 18:06:50

проблема с Blade

всем привет! начал разбираться с laravel совсем недавно и столкнулся с некоторыми проблемами, в частности, с выводом данных при помощи шаблонизатора. Суть в чем - есть вывод категорий и подкатегорий, категории выводятся как нужно, а вот подкатегории повторяются для каждой категории, не могу понять как это побороть.
Ниже код выборки и вывода.

 $cat = DB::select("select * from `category` limit 0,5");
        $arr = [];
        foreach ($cat as $cats) {
            $arr['catname'][] = $cats->cat_name;
            $arr['catdescr'][] = $cats->cat_description;

            $podcat = DB::select("select * from `sub_category` where `cat_id` = ?", [$cats->cat_id]);
            if (!empty($podcat)) {
                foreach ($podcat as $subcat) {
                    $data['sub'][] = array('sub_name' => $subcat->sub_cat_name);
                }
            }

        }

        $data['result'] = array('name' => $arr['catname'], 'descr' => $arr['catdescr']);

        return view('default.index', $data);

вывод результата:

<section class="divisions">

            @for($i = 0; $i < 5; $i++)
            <div class="divisions-icon wow fadeIn" data-wow-duration="2s">
                <a href="">
                    {!! $result['descr'][$i] !!}
                    <p>{{ $result['name'][$i] }}</p>
                </a>
            </div>
            @endfor

            <div class="divisions-icon wow fadeIn" data-wow-duration="2s">
                <a href="">
                    <i class="fa fa-th-large" aria-hidden="true"></i>
                    <p>Все категории</p>
                </a>
            </div>
        </section>
        <section class="all-categories">
        @foreach($result['name'] as $cats)
            <div class="categories1">
                <div class="categories-img">
                    <img src="images/categories/categories1.png">
                </div>
                <ul>
                    <li><a href="">{{ $cats }}</a></li>
                    @if (!empty($sub))
                    @foreach($sub as $subcat)
                    <li><a href="">{{  $subcat['sub_name'] }}</a></li>
                   @endforeach
                    @endif

                    <li><a href="">Все подкатегории <i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
                </ul>
            </div>
        @endforeach

Не в сети

#2 18.03.2017 11:42:36

Re: проблема с Blade

Нужно выборку делать одним запросом с LEFT JOIN. Если использовать ORM, в модели прописать внешние зависимости и использовать жадную загрузку.

Не в сети

Подвал раздела