如何处理Yii2查找方法中没有记录的错误?

时间:2017-08-01 07:28:48

标签: activerecord datatables yii2 find

我使用项目中的DataTables插件在网格中显示用户信息的一些字段是使用Yii2开发的。

我有这个代码来获取每个用户的最后一次访问:

$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.

这似乎是因为表中的某些用户没有记录。

如何处理此错误?

谢谢。

1 个答案:

答案 0 :(得分:4)

您需要先检查是否已从数据库中提取日志。

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