我是Yii的初学者,并且尝试理解CGridView小部件。
首先,我理解所有这些守则:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
"url",
"allowRedirect",
array(
"name"=>"Kod",
"value"=>array($model, "returnHTTPCode"),
"type"=>"html"
),
array(
"class"=>"CButtonColumn",
"template"=>"{update} {delete}",
),
),
));现在,我想将删除按钮的url更改为http://domain.com/?r=pano/deleteSite。在文件中,有一个deleteButtonUrl属性,我正在尝试使用它
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
"url",
"allowRedirect",
array(
"name"=>"Kod",
"value"=>array($model, "returnHTTPCode"),
"type"=>"html"
),
array(
"class"=>"CButtonColumn",
"template"=>"{update} {delete}",
"deleteButtonUrl"=>"deleteSite"
),
),
));但我发现了Use of undefined constant deleteSite - assumed 'deleteSite'错误。
然后我尝试使用buttons属性CButtonColumn。
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
"url",
"allowRedirect",
array(
"name"=>"Kod",
"value"=>array($model, "returnHTTPCode"),
"type"=>"html"
),
array(
"class"=>"CButtonColumn",
"template"=>"{update} {delete}",
"buttons"=>array(
"delete"=>array(
"url"=>"http://localhost/sitelerimacikmi/index.php?r=panos"
)
),
),
),
));也犯了同样的错误。
如何使用CButtonColumn的属性?
注意到,英语不是我的母语,所以如果可能的话,请使用简单的语法。
发布于 2012-11-02 22:55:20
您可以尝试使用:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
"url",
"allowRedirect",
array(
"name"=>"Kod",
"value"=>array($model, "returnHTTPCode"),
"type"=>"html"
),
array(
"class"=>"CButtonColumn",
"template"=>"{update} {delete}",
"deleteButtonUrl" => "Yii::app()->createUrl('pano/deleteSite')" // <- changes here
),
),
));此外,您还可以阅读本文:http://www.yiiframework.com/wiki/106/using-cbuttoncolumn-to-customize-buttons-in-cgridview/
发布于 2012-11-02 22:55:49
如果需要指定URL,则必须将其指定为PHP表达式。下面是如何在CButtonColumn类中定义delete URL的默认值,
public $deleteButtonUrl = 'Yii::app()->controller->createUrl(
"delete",array("id"=>$data->primaryKey)
)';这个url是使用php eval函数计算的,在这个表达式中,$data是正在呈现的当前模型。
你应该使用:
$this->widget('zii.widgets.grid.CGridView', array(
...
'columns'=>array(
...
array(
'class'=>'CButtonColumn',
'deleteButtonUrl' => 'Yii::app()->controller->createUrl(
"pano/deleteSite", array("id" => $data->primaryKey)
)',
),
),
);https://stackoverflow.com/questions/13203284
复制相似问题