1

私のモデルでは、relation()このようなものがあります。

        'notRelUser' => array(
            self::HAS_MANY,
            'LocationUser',
            'location_id',
            'condition' => 'notRelUser.status is null',
            'on' => 'notRelUser.user_id = ' . Yii::app()->user->getId(),
            'with' => array('parent_location'),
            'select' => array('*', 'name AS canApply'),
        ),

この

public $canApply;

私のコントローラーにはこれがあります

    $regions = Location::model()->with('notRelUser')->findAll();
    $arrayCanApply = new CArrayDataProvider($regions);

次に、 datagridのウィジェットでcanApplyの値を出力しようとしています。

<?php $this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider'=>$arrayCanApply,
'columns'=>array(
    array('name'=>'name', 'header'=>'Name'),
    array('name' => 'canApply', 'value'=>'$data->canApply', 'header'=>'CanApply'),
 ),
 ));

ただし、canApplyの列は空です。

私もその$data->部分なしで試しました。

このエイリアスを印刷するにはどうすればよいですか?

(エイリアスの値は簡単ですが、後で変更します)

アップデート:

select in-を使用して値を取得できますが、CDbCriteria関連して取得したいと思います。

これは機能します。

$criteria = new CDbCriteria;
$criteria->select = '("foobar") AS canApply';
$regions = Location::model()->with('notRelUser')->findAll($criteria);

しかし、毎回$criteriaを作成しなければならないのは奇妙に思えます

4

2 に答える 2

2

canApply をモデルの属性として宣言する必要があります

あなたのモデルでdecalare canApplyを属性として

public $canApply;
于 2013-03-12T19:25:08.370 に答える