Yii:试图获得非对象的属性

时间:2014-04-24 10:33:13

标签: php yii

我发现了许多帖子,试图获得非对象的财产,但我还是无法弄清楚我的问题。 我有一个webapp,当我创建一个表单时,它给了我这个错误 -

view.php:

$this->breadcrumbs=array(
    'Events'=>array('index'),
$model->ename, //Error at this line
);

控制器:

public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
 ));
 }

public function loadModel($id)
{
$ename= Event::model()->ename;
$model = Event::model()->findByPk($id,$ename);//tried this since I have composite key
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}

2 个答案:

答案 0 :(得分:0)

我不是Yii专家,但一般来说这意味着$ model不是对象。在大多数框架中,您使用$ this->模型而不是$ model。可能是这样吗?那么试试$this->model->ename

How to use model object in Yii Controller and View似乎就是这种情况。

答案 1 :(得分:0)

根据您用于加载模型的方式,如果没有结果,结果将为NULL或空arrayfind返回NULLfindAll将始终返回array,但如果没有结果,则会为空。

查看代码,模型的初始加载失败。最有可能的原因是所请求的数据库记录不存在。要检查模型是否已成功加载,您可以执行以下操作:

if(is_null($model)) { /* Used with find */ }
if(!count($models)) { /* used with findAll */ }