试图在Yii模型中获得非对象的属性

时间:2014-07-18 13:30:03

标签: php object yii

我有以下控制器逻辑,它返回'非对象错误'

一旦我添加用户第二行就会发生这种情况....任何想法?

$parentuser = new MyparentsMyuser::model()->findAll();
$parentuser->setAttributes(array(
    'user_id' => Yii::app()->controller->user->id,
    'parent_id' => 4259
));

2 个答案:

答案 0 :(得分:2)

我认为你有这个错误,因为有一些输入错误。

$parentuser = new MyparentsMyuser::model()->findAll();

替换为

$parentuser = MyparentsMyuser::model()->findAll();

答案 1 :(得分:1)

您缺少任何开发的黄金规则之一:检查您的结果。

代码中的第一行应该返回一个模型数组或一个空数组。

// findAll() Returns an array of results.
// Wrong !! You are combining new and findall
// $parentuser = new MyparentsMyuser::model()->findAll();
$parentuser = MyparentsMyuser::model()->findAll();

然后,考虑到我对预期回报值的评论,第2行的使用无效。

// Wrong!! You cannot apply the setAttributes() method to an array.
$parentuser->setAttributes( ...);

因此,您必须解析数组并将setAttributes应用于每个元素,如果这是您想要的。