2017-04-05 63 views
0

在形式有這樣一羣複選框獲取複選框值的陣列控制器

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

在HTML中,它看起來像

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

我怎樣才能得到複選框值的數組控制器的actionCreate方法?

我試圖做這樣的

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

,但我得到一個空數組。

增加:

Ingredients屬性不存在在生成的模型Dish,我已經後的手添加它。 DishIngredientsmany to many的關係。 如何正確地將ingredients添加到Dish型號?

現在,如果我做

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

$model->ingredients是空數組。

回答

1

Dish模型創建ingredients屬性:

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

加載所有的POST數據到模型,然後訪問ingredients陣列:

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

我在我的問題 –

+0

只是澄清了問題創建一個attirbute在哪裏加載數組,然後使用它 – gmc

+0

我已經爲'配料'添加了setter,並且它一切正常。吸氣已經。公共財產也起作用。謝謝 –