2016-12-21 10 views
2

雄弁なクエリを実行してビューを作成し、それをBladeに渡します。laravelでオブジェクトが空であるかどうかを確認する必要があります

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

ただし、クエリによって何も表示されなくても$ contactsには何かがあると常に仮定しています。

私はdd($contacts)をしたとget:それが空の場合

Collection {#247 ▼ 
    #items: [] 
} 

はどうやってチェックしますか?

答えて

7

あなたの例から分かるように、Eloquent Collectionの場合は、isEmptyコレクションヘルパ関数を使用できます。あなたがcountを使用できるように

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

Collections Documentation

3

あなたの雄弁クエリは、結果の配列を返します。

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

は、それが配列インタフェースを実装雄弁Collectionオブジェクトだ、結果の配列ではありません。 –

+0

@JeremyHarrisもちろん、あなたは正しいです、私は結果が配列であることを意味しました:) – Michel

+0

これは私が必要としたものです。私は、空の($ request-> request)を使って自分のurlパラメータが空であるかどうかをチェックしようとしましたが、クエリ文字列が設定されていなくても 'false'を返していました。あなたの方法はしかし働いた。 –

2

$contactsは空です。 Bcoz質問がデータを取得できません。クエリがデータを取得できないと、空のアーリーを返します。だから、

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

それをチェックし、いくつかの方法があります。

if (!empty($contacts)) 

if (!contacts->isEmpty()) 

if (count($contacts) > 0) 

if ($contacts->count() > 0) 
関連する問題