2017-04-05 1 views
0

In der Form ist es eine solche Gruppe von KontrollkästchenErste eine Reihe von Kontrollkästchen Werte in der Steuerung

$form->field($model, 'ingredients')->checkboxList(
     ArrayHelper::map($ingredients, 'id', 'name') 
    ) 

In html es wie

<input name="Dish[ingredients][]" value="1" type="checkbox"> 
<input name="Dish[ingredients][]" value="2" type="checkbox"> 

sieht, wie ich eine Reihe von Kontrollkästchen Werte erhalten können in die actionCreate Methode der Steuerung?

Ich mache es wie dieser Versuch

Yii::$app->request->post('Dish[ingredients]', []) 

aber ich bekomme ein leeres Array.

Zusatz:

Ingredients Eigenschaft ist nicht in generierten Modell Dish, ich habe es später durch die Hand gegeben. Dish und Ingredients haben eine many to many Beziehung. Wie wird ingredients zu dem Dish Modell korrekt hinzugefügt?

Wenn ich aber tue

$model = new Dish(); 
$model->load(Yii::$app->request->post()); 
var_dump($model->ingredients); 

$model->ingredients leeres Array ist.

Antwort

1

Erstellen Sie das ingredients Attribut im Dish Modell:

public class Dish { 
    public $ingredients; 
    ... 
} 

laden alle Post-Daten zu Ihrem Modell und dann auf den ingredients Array:

$model = new Dish(); 
$model->load(Yii::$app->request->post()); 
var_dump($model->ingredients); 
+0

ich das Problem in meiner Frage geklärt –

+0

einfach Erstellen Sie eine Attibute, wo Sie das Array laden und dann mit ihm arbeiten – gmc

+0

Ich hatte Setter für 'Zutaten' hinzugefügt und es hat alles funktioniert. Getter war schon. Mit öffentlichem Eigentum funktioniert auch. Vielen Dank –

Verwandte Themen