在Listdata()中加载关系值

时间:2013-01-26 10:08:46

标签: php yii

我需要知道如何在listData(),

中调用关系

以正常方式举例说明我们可以这样称呼:

$model->section->section_name ;

在我的代码中我只是将值打印为数字但我需要从课程表中打印字符串值。

public function coursesList($section_id) {


        $data=Msection::model()->findAll('section_id=:section_id', 
                array(':section_id'=>(int)$section_id));


        return CHtml::listData($data,'course_id','course_id');
 //// can i call it like : ///listData($data,'course_id->course->course_name','course_id');
        }

我可以这样称呼它:

listData($data,'course_id->course->course_name','course_id');

如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:4)

如果您使用的是php 5.3或更高版本,您可以在ListData中调用匿名函数,其中参数是此时列表正在处理的模型:

CHtml::listData($data,'id',function($course) {
    return CHtml::encode($course->course_name);
});

来源:Yii documentation