【发布时间】:2023-03-14 15:00:01
【问题描述】:
在views中控制器名可以通过$this->id来实现,但是在CGridView中$this->id评估结果是另外一个名字(可能是gridview小部件名)。 (1) 如何在 cgridview 中获取控制器名称?
我还尝试在调用 CGridview 之前定义一个变量 ($thisCtl = $this->id)。虽然 $thisCtl 有控制器名称,但在 CGridview 评估过程中没有定义它。 (2) 有没有办法给CGridView传参数?
<?php
$thisCtl = $this->id;
$data = $model->search();
$this->widget('bootstrap.widgets.TbExtendedGridView', array(
'id'=>'insurance-grid',
'dataProvider'=>$model->search(),
//'filter'=>$model,
'columns'=>array(
'id',
'registeration_date',
'modification_date',
array(
'htmlOptions' => array('nowrap'=>'nowrap'),
'class'=>'bootstrap.widgets.TbButtonColumn',
'viewButtonUrl'=>'Yii::app()->createUrl("$thisCtl/view", array("id"=>$data["id"]))',
'updateButtonUrl'=>'Yii::app()->createUrl("$this->id/update", array("id"=>$data["id"]))',
),
),
));
?>
【问题讨论】:
-
你试过
Yii::app()->id -
我试过了,有一个奇怪的值!
-
你试试这个
'Yii::app()->createUrl("'.$this->id.'/update", array("id"=>$data["id"]))' -
我试过了,CGridView中的$this是指它的widget。