如何访问yii中单个模型/控制器/表单中两个不同表的数据


How to access data from two different table within single model/controller/form in yii

我是yii的新手和初学者,所以我要问这个问题。

实际上我有两张不同的桌子。

首先是语言

其中有两个字段language(id,language_name)//这里id是主键。

第二名是学者

学者有6个领域。Scholar(id,name,language_id,contact_no,country,email)//这里id是主键,而language_id是对语言的外键引用。

现在,通过Gii代码生成器,我已经用Language和Scholar的表单生成器生成了模型、控制器和视图,在那里我也可以添加不同的语言和学者,我可以管理它。

现在我的问题是,当我点击管理学者时,它会显示语言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这样的数据。

感谢

假设您的Scholar类具有一个称为language的关系,该关系在模型的relations()方法中定义如下:

'language' => array(self::BELONGS_TO, 'Language', 'language_id'),

现在,您可以在视图中使用<?php echo $data->language->language_name; ?>,并将language.language_name用作CDetailViews和CGridViews的字段名。