私のモデルでは、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を作成しなければならないのは奇妙に思えます