Php 试图获取Yii中非对象错误的属性
案例1:我得到一组CActiveRecords并尝试在其上循环,如下所示:Php 试图获取Yii中非对象错误的属性,php,linux,object,properties,yii,Php,Linux,Object,Properties,Yii,案例1:我得到一组CActiveRecords并尝试在其上循环,如下所示: foreach ($pendingTasks as $task) { if($task->task->employee_id=="1") { //some logic here } } 我得到“尝试获取非对象的属性” 案例2:如果我尝试: $pendingTasks = TaskLog::model()->find
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
中的任务必须没有关系。只需添加一个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
的实例。从您在服务器上迭代的列表中转储$task,则出现错误的原因是您从$task访问任务,该任务为空。