1

案例 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   
    }

这行得通。为什么会这样?我在这里做错什么了吗?

4

1 回答 1

3

因为tasksin$pendingTasks一定没有关系。你可以通过简单地添加一个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";
    }
}

假设$pendingTasksTaskLog也的实例。

于 2013-08-20T13:05:11.240 回答