我是yii的新手和初学者,所以我问这个问题。
其实我有两张不同的桌子。
首先是语言。
有两个字段language(id,language_name)//这里id是主键。
其次是学者。
学者有6个领域。学者(id,name,language_id,contact_no,country,email)//这里id是主键,而language_id是语言的外键引用。
现在通过Gii Code Generator我已经使用语言和学者的表单生成器生成了模型,控制器和视图,我可以添加不同的语言和学者,我可以管理它。
现在我的问题是当我点击管理学者时,它会显示语言ID,我想在这里显示语言名称。
那么你能帮助我如何在这里访问语言名称而不是语言ID。
我可以通过以下代码在视图文件中获取语言名称。
<b><?php echo CHtml::encode($data->getAttributeLabel('language_id')); ?>:</b>
<?php
$criteria = new CDbCriteria ;
$criteria->select='language_name';
$qAlbums=Language::model()->findbyPk($data->language_id);
echo $qAlbums->language_name;
?>
但我不想在视图中编写类似代码,我希望如此,我直接获得数据中的$data->language_name
数据。
由于
答案 0 :(得分:1)
假设您的Scholar
类在模型的language
方法中定义了一个名为relations()
的关系,如下所示:
'language' => array(self::BELONGS_TO, 'Language', 'language_id'),
您现在可以在视图中使用<?php echo $data->language->language_name; ?>
,并在CDetailViews和CGridViews中使用language.language_name
作为字段名称。