我已经创建了一段代码,用于生成我需要包含在yii2 Grid ActionColumn中的dinamically按钮。使用此功能,我可以定义一个按钮,只需指定一个参数数组:
功能非常好,但我不能替换静态字符串"我的名字"使用我的变量$ config [' icon']因为我无法将值发送给函数。
我可以解决这个问题吗? (我使用Kartik网格扩展)
foreach(...) {
$actionColumns['controller'] = $config['controller'];
$actionColumns['buttons'] = array($config['name'] => function ($url, $model, $key) {
return Html::a('my name', $url);
});
$actionColumns['template'] = '{'.$config['name'].'}';
}
泰
答案 0 :(得分:1)
我认为你可以通过use来传递值来关闭
function ($url, $model, $key) use ($config['icon'])
{
.....
}
所以在你的情况下
foreach(...) {
$actionColumns['controller'] = $config['controller'];
$actionColumns['buttons'] = array($config['name'] =>
function ($url, $model, $key) use ($config['icon']) {
return Html::a($config['icon'], $url);
});
$actionColumns['template'] = '{'.$config['name'].'}';
}