Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 试图获取Yii中非对象错误的属性_Php_Linux_Object_Properties_Yii - Fatal编程技术网

Php 试图获取Yii中非对象错误的属性

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

案例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
中的
任务必须没有关系。只需添加一个
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访问任务,该任务为空。