在我的模型中,我有一個這樣的relation()
。在dataProvider中使用列別名
'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);
我然後我試圖打印出的值canApply在窗口小部件的DataGrid
<?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->
部分。
如何打印此別名?
(我知道別名i的值微不足道,但以後我會改變)
UPDATE:
我可以通過選擇在CDbCriteria
獲得的價值 - 但我想這樣做它關係。
這是行不通的。
$criteria = new CDbCriteria;
$criteria->select = '("foobar") AS canApply';
$regions = Location::model()->with('notRelUser')->findAll($criteria);
但似乎奇怪的是,我必須在每次創建一個$標準
我已經這樣做了,但也許我沒有在問題中寫得夠好。該值仍然爲空。 – 2013-03-12 20:18:00