Tentando obter propriedades de erro não-object em Yii

Caso 1: recebo uma matriz de CActiveRecords e tente ignorá-lo, conforme mostrado abaixo:

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

Eu recebo “Tentando obter a propriedade de não-object

Caso 2: se eu tentar:

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

Isso funciona. Porque isto é assim? Estou fazendo alguma coisa errada aqui?

Por causa das tasks em $pendingTasks não deve ter uma relação. Você pode verificar simplesmente adicionando um isset() assim:

 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"; } } 

Supondo que $pendingTasks são instâncias do TaskLog .