web-dev-qa-db-fra.com

Besoin de vérifier si un objet est vide dans laravel

Je crée une vue en faisant une requête éloquente, puis je la passe à Blade.

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

Cependant, il est toujours supposé que $ contacts a quelque chose même si la requête ne me donne rien.

J'ai fait dd($contacts) et j'ai: 

Collection {#247 ▼
  #items: []
}

Comment puis-je vérifier s'il est vide?

6
prgrm

S'il s'agit d'une collection Eloquent telle qu'elle semble provenir de votre exemple, vous pouvez utiliser la fonction d'assistance de collection isEmpty;

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

Documentation Collections

22
gsueagle2008

Il y a plusieurs façons:

if (!empty($contacts))

if (!contacts->isEmpty())

if (count($contacts) > 0)

if ($contacts->count() > 0)
5
Alexey Mezenin

Votre requête Eloquent renvoie un tableau de résultats. Vous pouvez donc utiliser count.

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

Votre $contacts est vide. Bcoz Votre requête est incapable d'obtenir des données. Une fois que votre requête est incapable d'obtenir des données, elle renvoie un arrya vide. Alors vérifie le 

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

Vous pouvez utiliser blank($contacts) 
Helpers Laravel: blank

1
Dang Cong Duong

si c'est à l'intérieur d'un contrôleur cela aidera

if(empty($query) {
     //do something
}else{
//do some stuff
}
0
Rapheal Enike
if(count($profiles) > 0){
            return redirect()->action('NameController@name');
        }else{
            return view('user');
        }

cela fonctionne aussi très bien dans un contrôleur

0
Rapheal Enike