2016-07-02 8 views
0

Ich habe ein Problem mit einem Codeabschnitt, den ich erstellt habe, um dynamisch Schaltflächen zu generieren, die ich in meine yii2 Grid ActionColumn einfügen muss. Mit dieser Funktion kann ich eine Schaltfläche Angabe definiere nur eine Reihe von Parametern:Benutzerdefiniertes Yii2-Gitter ActionButton

  • Name
  • Controller (Ziel)
  • Symbol

Funktion funktioniert ziemlich gut, aber ich kann nicht ersetzen die statische Zeichenfolge "mein Name" mit meiner Variablen $ config ['icon'], weil ich den Wert nicht an die Funktion senden kann.

Kann ich dieses Problem lösen? (Ich verwende estension Kartik grid)

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

Ty

Antwort

1

Ich denke, man kann

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

so in Ihrem Fall

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'].'}'; 
} 
den Wert durch die Verwendung für die Schließung vorbei
Verwandte Themen