2016-12-28 6 views
2

私はサブスクリプションベースでアプリケーションを構築しようとしています。そのため、名前として文字列、valid_tillを日付として構成されるテーブルがあります。laravel 5.3でどのクエリが失敗したかを見つける方法は?

私は次のことで、テーブルを取得しようとしている:それは正常に動作している

$today = Carbon::today(); 
$active = Domain::where([ 
      ['name', $name], 
      ['valid_till', '>=', $today], 
    ])->first(); 
if(isset($active)) 
{ 
    return "Name fetched"; 
} 
else 
{ 
    return "Name not there"; 
} 

。私は "名前が見つかりましたが有効期限が切れました"のようなエラーをチェックしたいと思います。私を案内してください。

ありがとうございました。

+0

なぜ、あらかじめ構築された検証メカニズムを使用できないのですか? – Peon

+0

@DainisAbols私はこれについて新しいことを学んでいますが、その機能の多くを認識していません –

+0

Laravelには、[Validator](https://laravel.com/docs/5.3/validation)があり、データ。これは一般的に提示され、要求の検証に使用されますが、基本的には何でもフィードできます。ルールを定義し、検証エラーを読んでください。 – Peon

答えて

2

first()クエリに何も見つからない場合はnullが返されますので、is_nullを使用してオブジェクトがあるかどうかを確認してください。

if (!is_null($active)) { 
    // Object exists. 
} else { 
    // No result. 
} 

あなたはコレクションが空であるかどうかをチェックする result->isEmpty()または empty($result)または count($result)または $result->count()を使用する必要があります get()を使用しています。

+0

これは私の答えではありません。名前を取得して出力を取得したとしますが、valid_tillチェック中にエラーをスローします。私はそれらのエラーをキャッチしたい。 –

+0

@NitishKumar 'valid_till'が今日より遅い場合、私の答えで説明したようにクエリは' null'を返します。 –

+0

このエラーを表示して、購読の有効期限が切れているか、名前が見つかりません。 –

関連する問題