2

CDbCriteria私のコード でモデルのいくつかのテーブルを結合したのは次のようなものです:

$crt = new CDbCriteria();
        $crt->alias = 'so';
        $crt->select = 'u.id, u.first_name, u.last_name';
        $crt->join = " inner join " . Flow::model()->tableName() . " as fl on fl.id = so.flow_id";
        $crt->join .= " inner join " . RoleUser::model()->tableName() . " as ru on ru.id = fl.receiver_role_user_id";
        $crt->join .= " inner join " . User::model()->tableName() . " as u on ru.user_id= u.id";
        $crt->compare('sms_outbox_group_id', $smsOutboxGroupId);
        $crt->compare('fl.kind', Flow::KIND_SMS);
        $crt->group = 'u.id';

        $smsOutBox = new SmsOutbox();
        return new CActiveDataProvider($smsOutBox, array(
            'criteria' => $crt,
            'sort' => array(
                'defaultOrder' => 'so.id DESC',
            )
        ));

で選択した列を表示するにはどうすればよいCGridViewですか? モデルで関係を定義せずfirst_nameに表示する方法はありますか?last_name

4

2 に答える 2

1

エイリアスを使用して、このように CgridView で呼び出します

$crt->select = 'u.id, u.first_name as fname, u.last_name as lastname';

あなたのグリッドでそれを呼び出します。

array('name'=>'name' or 'header'=>'some header','value'=>'$data->fname')
于 2013-06-10T12:31:02.850 に答える