0

次の talbes がありますが、firstname をソート可能として定義すると機能しません (リスト ビューをクリックしてソートできるリンクとして firstname を表示しません)。それにもかかわらず、ユーザー名が正常に機能している場合。

| User
| - userid
| - username

| Profile
| - userid
| - firstname
| - lastname

私はコントローラーに持っています:

    $criteria->with=array(
        'profile',
    );
    $criteria->addCondition('status = 1 or status = 2 or status = 3');

    if($search) 
        $criteria->addCondition("firstname = '{$search}'");

    $dataProvider=new CActiveDataProvider('YumUser', array(
                'criteria' => $criteria, 
                'pagination'=>array(
                    'pageSize'=>50,
                    )));

ビューで:

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_view', 
        'template' => '{summary} {sorter} {items} <div style="clear:both;"></div> {pager}',
    'sortableAttributes'=>array(
        'firstname',
    ),
));
4

1 に答える 1

4

これは、dataProvider のsortプロパティが明示的に設定されている場合にのみ機能します (これらの場合、別のモデルにある属性でソートしている場合)。

これを試して

 $dataProvider =  new CActiveDataProvider('YumUser', array(
                'criteria' => $criteria, 
                'sort'=>array(
                    'attributes'=>array(
                         'firstname'=>array(
                              'asc'=>'firstname',
                              'desc'=>'firstname DESC',
                          ),
                     ),
                 ),
                'pagination'=>array(
                    'pageSize'=>50,
                    )));
于 2012-06-04T11:57:10.773 に答える