/** * Updates an existing News model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $loaded = $model->load(Yii::$app->request->post()); if ($loaded) { if ($model->is_published) { $model->published = date('Y-m-d H:i:s'); } } if ($loaded && $model->save()) { $model->upload(); $category_relations = $_POST['News']['categories']; CategoryRelations::deleteAll(['news_id' => $model->id]); foreach ($category_relations as $cat_id) { $category_relation = new CategoryRelations(); $category_relation->news_id = $model->id; $category_relation->category_id = $cat_id; $category_relation->save(); } return $this->redirect(['view', 'id' => $model->id]); } else { $categories_arr = Category::find()->asArray()->all(); foreach ($categories_arr as &$cat) { $categories[$cat['id']] = $cat['name']; } foreach ($model->categoryRelations as $rel) { $model->categories[] = $rel->category_id; } return $this->render('update', compact('model', 'categories')); } }