0

問題があります。2 つのテーブル users と data があります。関係は 1 対 1 です。dataProvider のコードは次のとおりです。

$dataProvider = new CActiveDataProvider('Users', array(
    'pagination'=> array(
        'pageSize'=> 10
    ),
    'criteria'=>array(
        'with' => array (
            'data'=>array(
                'joinType'=>'JOIN')
            )
        ),
    )
));

と関係'data' => array(self::HAS_ONE, 'Data', 'id');

および TbGridView のコード

$this->widget('bootstrap.widgets.TbGridView', array(
    'dataProvider'=>$dataProvider,
    'template'=>"{items} {pager}",
    'itemsCssClass'=>'table table-striped table-bordered table-condensed tableNews',
    'columns'=>array(
        array('name'=>'id', 'header'=>'#'),
        array('name'=>'name'),
        array('name'=>'email'),
        array('name'=>'data.id'),
        array('name'=>'data.investment_amount')
));

2 番目のテーブルに data.fildname を配置する必要があります。それ以外の場合は機能せず、2 番目のテーブルのフィールド名はクリックできません TbGridView のスクリーンショット

何が問題なのですか、ありがとう

4

1 に答える 1

0
   
        return new CActiveDataProvider("Users", array(
          'criteria'=>$criteria,
          'sort'=>array(
          'defaultOrder'=>$defaultOrder,
          'attributes'=>array(

            'id'=>array(
                        'asc'=>'t.id',
                     'desc'=>'t.id DESC',
                ),


            'data.investment_amount'=>array(
                        'asc'=>'data.investment_amount',
                     'desc'=>'data.investment_amount DESC',
                ),

ただし、使用sortする場合は、属性配列内のすべての名前を定義する必要があります

于 2013-03-15T17:53:38.627 に答える