2016-12-21 1 views
2

Создаю представление, выполнив красноречивый запрос, а затем передайте его Blade.Необходимо проверить, нет ли объекта в laravel

@if($contacts != null) 
//display contacts 
@else 
You dont have contacts 
@endif 

Однако он всегда предполагает, что у $ контактов есть что-то, даже если запрос ничего не дает мне.

Я сделал dd($contacts) и получите:

Collection {#247 ▼ 
    #items: [] 
} 

Как проверить, если он пуст?

ответ

7

Если это яркая коллекция, как представляется из вашего примера, вы можете использовать вспомогательную функцию коллекции isEmpty;

@if(!$contacts->isEmpty()) 
//display contacts 
@else 
You dont have contacts 
@endif 

Collections Documentation

3

Ваш Eloquent запрос возвращает массив результата, так что вы можете использовать count.

@if(count($contacts) > 0) 
//Display contacts 
@else 
//No contacts 
@endif 
+0

Это не массив результатов, это объект Eloquent Collection, который реализует интерфейсы массива. –

+0

@JeremyHarris, конечно, вы правы, я просто имел в виду результат - массив :) – Michel

+0

вот что мне нужно. Я пытался проверить, были ли мои параметры url пустыми, используя 'empty ($ request-> request)', но это возвращало 'false', даже когда строки запроса не были установлены. Однако ваш метод работал. –

2

Ваш $contacts пуст. Bcoz Ваш запрос не может получить данные. Когда ваш запрос не сможет получить данные, он возвращает пустую arrya. Так проверить это

@if($contacts->isEmpty()) 
    {{ 'Empty' }} 
    @else 
    {{ 'you have data' }} 
    @endif 
2

Есть несколько способов:

if (!empty($contacts)) 

if (!contacts->isEmpty()) 

if (count($contacts) > 0) 

if ($contacts->count() > 0) 

 Смежные вопросы

  • Нет связанных вопросов^_^