В моей модели у меня есть 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->
.
Как распечатать этот псевдоним?
(я знаю значение псевдонима я тривиальным, но я изменю это позже)
UPDATE:
я могу получить значение с помощью выбора в CDbCriteria
- но я хочу сделать это по отношению.
Это действительно работает.
$criteria = new CDbCriteria;
$criteria->select = '("foobar") AS canApply';
$regions = Location::model()->with('notRelUser')->findAll($criteria);
но мне кажется странным, что я должен создать $ критерии на каждый раз
Я уже сделал это, но, возможно, я не написал это достаточно хорошо в вопросе. Значение по-прежнему равно нулю. –