2016-12-21 1 views
-1

J'ai un problème concernant l'insertion de données après l'explosion. Dans cette colonne GridView, je jette fonction de la valeur comme ceci:changer les valeurs du tableau après l'éclatement en yii2

[ 
     'attribute' => 'CONNECTOR_ACTION', 
     'value' => function($model){ 
      $apps = \app\models\APPLICATION::find() 
       ->where(['ID' => $model->ID_APPLICATION]) 
       ->one(); 
      $options = $apps['CONNECTOR_PARAM']; 
      $optionsArr = explode(', ', $options); 
      return Html::activeDropDownList($model, 'CONNECTOR_ACTION', $optionsArr, ['class'=>'form-control', 'disabled' => true]); 
     }, 
          'format' => 'raw' 
    ], 

Et en mode HTML comme ceci:

<td> 
    <select id="requestapplication-connector_action" class="form-control" name="REQUESTAPPLICATION[CONNECTOR_ACTION]" disabled> 
     <option value="0">create</option> 
     <option value="1">addrole</option> 
     <option value="2">defaultrole</option> 
     <option value="3">removerole</option> 
     <option value="4" selected>disable</option> 
     <option value="5">enable</option> 
     <option value="6">setpassword</option> 
    </select> 
</td> 

Si je veux changer menu déroulant comme ceci:

<td> 
    <select id="requestapplication-connector_action" class="form-control" name="REQUESTAPPLICATION[CONNECTOR_ACTION]" disabled> 
     <option value="create">create</option> 
     <option value="addrole">addrole</option> 
     <option value="defaultrole">defaultrole</option> 
     <option value="removerole">removerole</option> 
     <option value="disable" selected>disable</option> 
     <option value="enable">enable</option> 
     <option value="6">setpassword</option> 
    </select> 
</td> 

Comment je fais ça? Cela est dû au fait que les clés de $optionsArr ont une valeur de 0 à 6 au lieu des valeurs.

+0

vous devez créer une matrice avec la clé même valeur que l'utilisation de la logique de déplacement –

+0

Merci pour votre réponse. C'est un indice et j'ai résoudre mon problème \ m/ – Putra

+0

vous pouvez utiliser la réponse de ** jagsler ** –

Répondre

1

Pour le combiner, définissez les clés de la même manière que les valeurs.

$combined = array_combine($optionsArr, $optionsArr); 

Et puis utilisez $combined dans Html::activeDropdownList()