我是Yii框架的初学者,我想在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',
),
),
));发布于 2015-02-12 13:23:23
您可以这样做:
$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',
),
),
));我想这会对你有帮助的。
发布于 2015-02-13 23:21:34
一种选择是使用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路由,与本例中使用的示例路由参数类似。
https://stackoverflow.com/questions/28469537
复制相似问题