2013-08-20 40 views
1

情況1:我得到CActiveRecords的陣列,並且試圖遍歷它如下所示:試圖讓非對象錯誤的屬性在Yii中

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 
    } 

這工作。 這是爲什麼呢?我在這裏做錯了什麼嗎?

+0

從您在服務器上迭代的列表中轉儲$任務,錯誤出現是因爲您從$ task中訪問任務,該任務已爲空。 –

回答

3

由於tasks$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也實例。

+0

是的$ pendingTasks是TaskLog的實例,這個工作。謝謝 !!!!! –