primary modelos escenarios delete attributelabels and yii2 yii2-model

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!