【问题标题】:Trying to get property of non-object error in Yii试图在 Yii 中获取非对象错误的属性
【发布时间】:2013-08-22 12:45:24
【问题描述】:

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

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

【问题讨论】:

  • 从您在服务器上迭代的列表中转储 $task,出现错误是因为您从已为空的 $task 访问任务。

标签: php linux object properties yii


【解决方案1】:

因为$pendingTasks 中的tasks 一定没有关系。您可以通过简单地添加 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 的实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    相关资源
    最近更新 更多