0

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');

それを修正する方法は?

前もって感謝します

4

1 に答える 1

4

php 5.3以上を使用している場合は、ListDataで無名関数を呼び出すことができます。ここで、パラメーターは、現時点でリストが作業しているモデルです。

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

出典:Yiiドキュメント

于 2013-01-26T10:20:05.430 に答える