好吧,对Yii还是新手我试图在CGridView的列中创建一个按钮。单击此按钮将使用户进入“view.php”页面,并通过传入其ID来显示他们点击的节点的信息。
我很沮丧,我无法弄清楚如何简单地添加指向我的用户的图像的链接。以下是我过去几天一直在处理的代码片段。
<?php echo CHtml::beginForm(); ?>
<?php
$pageSize = Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']);
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'nodes-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
array(
'class' => 'CButtonColumn',
'template' => '{restart}',
'buttons' => array
(
'restart' => array
(
'label'=>'Restart this node',
'imageUrl'=>Yii::app()->baseUrl.'/images/refresh.png',
'options'=>array('id'=>'NB_bounce_Button'),
'url'=>array('view', 'id'=>$model->id),
)
),
),
/* 'id', */
'name',
'url',
'description',
'node_type',
'last_bounced',
//..
/**
* Displays a particular model.
* @param integer $id the ID of the model to be displayed
*/
public function actionView($id) {
$this->render('view', array(
'model' => $this->loadModel($id),
));
}
按钮位于左侧。 (刷新绿色箭头)
我做错了什么?更具体地说,我是否错误地使用了CButtonColumn的按钮?如果是这样,我该如何解决这个问题?
我的公司使用:Yii v1.1.8.r3324
<小时/> 编辑:[8/10/15]
似乎我可能过度复杂了。我需要的是简单地创建一个图像链接,当单击该图像链接到所单击的特定节点的视图时。好吧,Gii自动生成我需要的特定视图和与之关联的代码(如上所示)。
我的解决方法是废除我过于复杂的混乱并保持简单。使用已经为“视图”提供的模板,并根据我的需要进行更改。
像这样:
/* 'id', */
array(
'class'=>'CButtonColumn',
'template'=>'{view}',
'buttons' => array
(
'view' => array
(
'label'=>'Restart this node',
'imageUrl'=>Yii::app()->baseUrl.'/images/refresh.png',
'options'=>array
(
'id'=>'NB_bounce_Button'
)
)
),
),
'name',
'url',
'description',
'node_type',
'last_bounced',
//....
知道如何手动执行此操作会很高兴,但我现在需要一些简单的工作,稍后再进行工作。
答案 0 :(得分:0)
我认为问题是按钮的URL。因为您未在网址中包含 controllerID 。你应该用这个:
'url' => 'Yii::app()->createUrl("nodeBouncer/view", "id"=>$model->id)';
要在yii中创建url,通常应该遵循以下模式: 的 contollerID / actionID 强>