我的yii应用程序有一个奇怪的问题。我的数据库中有两个表玩家 - id,name,team_id和Teams - id,name。我可以创建新玩家,但是当我想看到玩家的个人资料时,会出现错误 - “试图获取非对象属性”这一行:
'value'=>$model->team->NAME,
最奇怪的问题是,当我测试ID为1和2的玩家的网址时,一切正常,我看到了正确的信息,但对于其他ID,我遇到了这个问题。这是我的代码的一部分:
view.php
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'ID',
'NAME',
'TEAM_ID',
array(
'label'=>'Отбор',
'type'=>'text',
'value'=>$model->team->NAME,
),
),
)); ?>
Players.php
public function relations()
return array(
'team' => array(self::BELONGS_TO, 'TEAMS', 'ID'),
);
}
Teams.php
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'player' => array(self::HAS_MANY, 'PLAYERS', 'ID'),
);
}
PlayersController.php
public function actionView($id)
{
$teams = new CActiveDataProvider('Teams');
$players = new CActiveDataProvider('Players');
$this->render('view', array(
'model'=>$this->loadModel($id),
));
}
答案 0 :(得分:4)
好像你需要修复relations
模型中的Players
错误:
public function relations()
return array(
'team' => array(self::BELONGS_TO, 'TEAMS', 'TEAM_ID'), // TEAM_ID instead of ID
);
}