案例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
的实例。