在我的模型中,我有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);
然后我尝试在数据网格的小部件中打印 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->
部分。
如何打印此别名?
(我知道别名的价值是微不足道的,但我稍后会改变)
更新
我可以在CDbCriteria
中使用select来获取值 - 但我想这样做。
这确实有效。
$criteria = new CDbCriteria;
$criteria->select = '("foobar") AS canApply';
$regions = Location::model()->with('notRelUser')->findAll($criteria);
但是我每次必须创建$条件似乎很奇怪
答案 0 :(得分:2)
你需要声明can canly作为模型的属性
在您的模型中,decalare canApply作为属性
public $canApply;
答案 1 :(得分:0)
我也有同样的问题。试试'value'=>'$data->notRelUser->canApply'
而不是'value'=>'$data->canApply'
。此外,您需要声明属性
public $canApply;
在LocationUser
模型中,而不在Location
模型中。