CGridView中有以下数组:
array(
'header' => Yii::t('dataTable', 'Actions'),
'class' => 'CButtonColumn',
'template' => '{action}',
'buttons' => array(
'action' => array(
'label' => '$data["action"]["action"]',
'url' => function($data) use($paramsURI) {
$paramsURI['action'] = $data['action']['action'];
$paramsURI['id'] = $data['id'];
return Yii::app()->createUrl(
"admin/report/transactions", $paramsURI
);
}
)
)
)我需要使用$data on按钮标签,但是在'label' => '$data["action"]["action"]'中,$data是未定义的,所以我尝试在'action‘中使用闭包,但是错误是'htmlspecialchars() expects parameter 1 to be string, object given '。
有什么办法解决这个问题吗?
发布于 2014-04-16 18:44:00
不要使用CButtonColumn,用'type'=>'raw'创建简单的列,并在这个字段中显示您想要的任何内容。
发布于 2014-04-16 18:54:02
我不认为标签支持eval表达式。您可以使用可视选项来隐藏和显示像这样的数据敏感标签。在下面的例子中,如果$data' Action‘=="Action 1“和Action 2适当地显示了"Action 1”。在这里观察“模板”和“可见”键。
array(
'header' => Yii::t('dataTable', 'Actions'),
'class' => 'CButtonColumn',
'template' => '{action1 action2}',
'buttons' => array(
'action1' => array(
'label' => 'Action 1',
'visible' => '$data["action"]["action"]=="Action 1"',
'url' => function($data) use($paramsURI) {
$paramsURI['action'] = $data['action']['action'];
$paramsURI['id'] = $data['id'];
return Yii::app()->createUrl(
"admin/report/transactions", $paramsURI
);
}
),
'action2' => array(
'label' => 'Action 2',
'visible' => '$data["action"]["action"]=="Action 2"',
'url' => function($data) use($paramsURI) {
$paramsURI['action'] = $data['action']['action'];
$paramsURI['id'] = $data['id'];
return Yii::app()->createUrl(
"admin/report/transactions", $paramsURI
);
}
)
))
https://stackoverflow.com/questions/23117414
复制相似问题