modelos - Yii2 menú desplegable múltiples valores seleccionados
yii2 delete (2)
Utilicé el menú desplegable de selección múltiple Yii2, está funcionando bien para crear pero no mostrar los valores seleccionados en la actualización.
Formar:
$form->field($model, ''categories[]'')
->dropDownList($model->CategoryDropdown,
[
''multiple''=>''multiple''
''class''=>''chosen-select input-md required'',
]
)->label("Add Categories");
Modelo:
public function getCategoryDropdown()
{
$listCategory = Category::find()->select(''ID,name'')
->where([''is_subcategory'' => ''Yes''])
->andWhere([''status'' => ''active'',''approved'' => ''active''])
->all();
$list = ArrayHelper::map( $listCategory,''ID'',''name'');
return $list;
}
Controlador:
public function actionCreate(){
...
$model->categories = implode(",",$_POST[''Company''][''categories'']);
...
return $this->render(''create'', [
''model'' => $model,
]);
}
public function actionUpdate($id)
{
$model = $this->findModel($id);
echo $model->categories; // 1,2,4,5 values already assigned
...
return $this->render(''update'', [
''model'' => $model,
]);
}
Base de datos:
1,2,4,5
¿Cómo puedo mostrar los valores múltiples seleccionados en el menú desplegable cuando actualizo mi recodificado?
Aquí hay una solución:
Formar
<?=
$form->field($model, ''categories'')
->dropDownList($model->CategoryDropdown,
[
''class''=>''chosen-select input-md required'',
''multiple''=>''multiple''
]
)->label("Add Categories");
?>
Controlador:
public function actionCreate(){
...
$model->categories = implode(",",$_POST[''Company''][''categories'']);
...
return $this->render(''create'', [
''model'' => $model,
]);
}
public function actionUpdate($id)
{
$model = $this->findModel($id);
$model->categories = explode('','', $model->categories);
...
if($model->load(Yii::$app->request->post()))
{
$model->categories = implode(",",$_POST[''Company''][''categories'']);
...
$model->save()
}
return $this->render(''update'', [
''model'' => $model,
]);
}
todo tu código está bien solo necesitas echo
tu $ form -> ...
echo $form->field($model, ''categories[]'')
->dropDownList($model->CategoryDropdown,
[
''multiple''=>''multiple'',
''class''=>''chosen-select input-md required'',
]
)->label("Add Categories");
o usa <?= ?>
a la vista!