Возвращаемое представление с переменной = ноль, если не задано в базе данных - PullRequest
0 голосов
/ 19 января 2020

У меня есть вопрос. Как я могу вернуть представление с переменной, которая является нулевой, если нет записи в БД. я знаю возвращаем переменную $ ?? значение NULL; но мне нужно это в представлении.

public function shop_items($shelf)
{
    $shop_shelf = $this->getTreeItems(0);
    $shop_items = DB::table("shop_items")->where('shelf_id', $shelf)->get();
    return view('shop',compact('shop_items','shop_shelf'));
}

если есть запись, я получаю значение $ shop_items, но если такой записи нет, то неопределенное смещение: 0

редактировать: добавить магазин .blade

@if(isset($shop_shelf))
@foreach($shop_shelf as $ss)
    <ul>
        <li>{{$ss["title"]}}
            @if(is_array($ss["children"]))
                <ul>
                    @foreach($ss["children"] as $sc)
                        <li>
                            <a href="/shop/shelf/{{$sc["id"]}}">
                                {{$sc["title"]}}
                            </a>
                        </li>
                    @endforeach
                </ul>
            @endif
        </li>
    </ul>
@endforeach

введите описание изображения здесь

не удалось опубликовать весь код, поэтому я поместил изображение shop.blade

1 Ответ

0 голосов
/ 19 января 2020

Вы можете использовать

@forelse($shop_shelf as $ss)
    <ul>
        <li>{{$ss["title"]}}
            @if(is_array($ss["children"]))
                <ul>
                    @foreach($ss["children"] as $sc)
                        <li>
                            <a href="/shop/shelf/{{$sc["id"]}}">
                                {{$sc["title"]}}
                            </a>
                        </li>
                    @endforeach
                </ul>
            @endif
        </li>
    </ul>
@empty
    <p>No data to display</p>
@endforelse

PS: примените структуру @forelse l oop везде, где у вас есть array в вашем клинке

См. 1010 * документы *

...