2016-07-02 3 views
0

yii2 Grid ActionColumn에 포함시켜야하는 dinamically 버튼을 생성하기 위해 생성 한 코드 섹션에 문제가 있습니다. 이 기능을 그냥 매개 변수의 배열을 지정하는 버튼을 정의 할 수 있습니다 :커스텀 Yii2 그리드 ActionButton

  • 이름을
  • 컨트롤러 (대상)
  • 아이콘

기능은 꽤 잘 작동하지만, 나는 대체 할 수 없습니다 함수에 값을 보낼 수 없기 때문에 정적 변수 "my name"을 내 변수 $ config [ 'icon']와 함께 사용합니다.

이 문제를 해결할 수 있습니까?

답변

1

난 당신이 귀하의 경우

function ($url, $model, $key) use ($config['icon']) 
{ 
    ..... 
} 

때문에 폐쇄를 이용하여 값을 전달 할 수 있다고 생각

foreach(...) { 
    $actionColumns['controller'] = $config['controller']; 
    $actionColumns['buttons'] = array($config['name'] => function ($url, $model, $key) { 
                 return Html::a('my name', $url); 
                }); 
    $actionColumns['template'] = '{'.$config['name'].'}'; 
} 

타이 (나는 Kartik 그리드 estension을 사용하고 있습니다)

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'].'}'; 
}