我是Yii Framework的初学者,我想在CGridView中使用字段idAccounts.name
链接
$post= Sheduale::model()->search();
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'users-grid',
'dataProvider'=>$post,
'columns'=>array(
'idAccounts.TypeId',
'idAccounts.name',
'start',
'end',
array(
'class'=>'CButtonColumn',
),
),
));
答案 0 :(得分:0)
你可以这样做:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'users-grid',
'dataProvider'=>$post,
'columns'=>array(
'idAccounts.TypeId',
array(
"header"=>"The column header",
"value"=>function($data, $row){
echo "<a></a>" //you can set everything you want here
//$data refers to each data row in the grid. you can use $data->attribute_name for access attributes of your model
}
)
'start',
'end',
array(
'class'=>'CButtonColumn',
),
),
));
我认为这会对你有帮助。
答案 1 :(得分:0)
一种选择是使用CLinkColumn。您可以将其label
属性设置为您要在链接中显示的任何文本,并使用其urlExpression
属性为每个链接生成URL。 urlExpression
必须是包含PHP的字符串(将对其进行评估以确定链接URL应使用的内容)。例如:
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'users-grid',
'dataProvider' => $post,
'columns' => array(
'idAccounts.TypeId',
array(
'class' => 'CLinkColumn',
'label' => 'View details'
'labelExpression' => '$data->idAccounts->name',
'urlExpression' => '\Yii::app()->createUrl('
. '"controller/action", '
. 'array("id" => $data->idAccounts->id)'
. ')',
'header' => 'Some Column Header',
),
'start',
'end',
array(
'class'=>'CButtonColumn',
),
),
));
您需要将controller/action
(在我的示例urlExpression
字符串中)替换为您希望链接转到的实际Yii路由,并且与此示例中使用的示例路由参数类似。