关于CGridView字段排序问题求教


DataProvider是从两个表里面取出来得,如:

    $criteria = new CDbCriteria();

    $criteria->with = "Drivers";

    $Cars = new CActiveDataProvider("Cars", array(

      'criteria'=>$criteria,

      'pagination' => false,

    ));


View 视图这么写:

$this->widget('zii.widgets.Grid.CGridView', array(

            'id'=>'Cars-grid',

            'dataProvider'=>$cars,

            'columns'=>array(

              'car_cd'=>array('header'=>'Car','name'=>'car_cd'),

              'car_rego_no'=>array('header'=>'RegNo','name'=>'car_rego_no'),

              'car_phone_no'=>array('header'=>'VPhone','name'=>'car_phone_no'),

              'firstname_nm'=>array(

                'header' => 'First Name',

                'value' => 'count($data->Drivers)>0?$data->Drivers->firstname_nm:""',

              ),

现在是 Cars 表得三个字段 Car, RegNo, VPhone 能排序, 但怎么能让附加进来得表得字段也能排序呢?

我理解是不是指定name得话,就根据model对应表得字段排序,可是附加进来得表得name怎么写呢?

$this->widget(‘zii.widgets.Grid.CGridView’, array(

        'id'=>'Cars-grid', 


        'dataProvider'=>$cars, 


        'columns'=>array( 


          'car_cd'=>array('header'=>'Car','name'=>'car_cd'), 


          'car_rego_no'=>array('header'=>'RegNo','name'=>'car_rego_no'), 


          'car_phone_no'=>array('header'=>'VPhone','name'=>'car_phone_no'), 


          'firstname_nm'=>array( 


            'header' => 'First Name',


            'name'=>'这里写需要排序的字段名',


            'value' => 'count($data->Drivers)>0?$data->Drivers->firstname_nm:""', 


          ),

巡洋舰,你说得这个方法我试过,没成功。还是谢谢你得宝贵时间。

我是这么作得,在DataProvider里面指定sort属性,如果是关联表得字段,要指明’relatedField’=>array(‘asc’=>‘fieldName asc’,‘desc’=>‘fieldName desc’)

我说得有点不对,除了我说得这样指明sort外,也应该像巡洋舰那样指定name