2017-08-01 6 views
1

プロジェクト内のDataTablesプラグインを使用してグリッド内のユーザー情報の一部のフィールドを表示します(Yii2で開発されています)。Yii2 findメソッドでレコードのエラーを処理する方法は?

私は、各ユーザーの最後の訪問取得するには、このコードを持っている:

$lastDate = SeenLog::find()->where(['user_id' => $this->id]) 
     ->orderBy(['id' => SORT_DESC]) 
     ->one()->visit_date; 

を、私はこのエラーを与えています:

DataTables warning: table id=w0 - Trying to get property of non-object and nothing shows in grid. 

で一部のユーザーのためにレコードがないので、それがあるようです表。

どうすればこのエラーを処理できますか?

ありがとうございます。

答えて

4

ログがDBから取得されているかどうか最初に確認する必要があります。

$log = SeenLog::find()->where(['user_id' => $this->id]) 
     ->orderBy(['id' => SORT_DESC]) 
     ->one(); 
$lastDate = $log ? $log->visit_date : null;