试图在Yii中获取非对象错误的属性

案例1:我得到一个CActiveRecords数组,并尝试循环它,如下所示:

foreach ($pendingTasks as $task) { if($task->task->employee_id=="1") { //some logic here } } 

我得到“试图获得非客体的财产”

案例2:如果我尝试:

 $pendingTasks = TaskLog::model()->findByPk("1"); if($pendingTasks->task->employee_id=="1") { //some logic here } 

这工作。 这是为什么? 我在这里做错了什么?

由于$pendingTasks中的tasks不能有关系。 你可以通过简单地添加一个isset()来检查:

 foreach ($pendingTasks as $task) { if(isset($task->task) && $task->task->employee_id=="1") { //some logic here } else { echo "{$task->id} doesn't have a task relation"; } } 

假设$pendingTasks TaskLog也是$pendingTasks的实例。