/** * Affichage du formulaire de création * * @return mixed */ public function actionCreate() { $model = new Language(); if (Yii::$app->request->isPost) { // Traitement du formulaire if (!($model->load(Yii::$app->request->post()) && $model->save())) { // On ré-affiche le formulaire avec ses erreurs Yii::$app->session->setFlash('flash-warning', HLib::t('messages', 'There are errors in your form')); } else { // Retour à la liste ou redirection sur la page d'édition, selon le bouton qui a été cliqué Yii::$app->session->setFlash('flash-success', HLib::t('messages', 'Create successful')); $requestedRedirection = Yii::$app->request->getBodyParam('action') == 'saveAndKeepEditing' ? Url::toRoute(['/cms/languages/update', 'id' => $model->id]) : Url::toRoute('/cms/languages/index'); return $this->redirect($requestedRedirection); } } // Affichage ou ré-affichage return $this->render('create', compact('model')); }
/** * @return \yii\db\ActiveQuery */ public function getLanguage() { return $this->hasOne(Language::className(), ['id' => 'language_id']); }
/** * Affichage du formulaire de modification * * @param int $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $request = Yii::$app->request; $ok = true; $baseModel = null; if ($request->isPost) { // Mise à jour de la WebPage et de la BasePage associée /** @var BasePage $baseModel */ if (!($baseModel = BasePage::findOne($request->post()['WebPage']['base_id']))) { $baseModel = new BasePage(); } $ok &= $baseModel && $baseModel->load($request->post()) && $baseModel->save(); $ok &= $model->load($request->post()) && $model->save(); if (!$ok) { Yii::$app->session->setFlash('flash-warning', HLib::t('messages', 'There are errors in your form')); } else { Yii::$app->session->setFlash('flash-success', HLib::t('messages', 'Update successful')); if ($request->getBodyParam('action') == 'saveAndBackToList') { return $this->redirect(Url::to([$this->getControllerRoute() . '/index', 'page' => 1])); } } } else { $baseModel = $model->base; } // Affichage ou ré-affichage $basePages = BasePage::find()->orderBy('code ASC')->all(); $languages = Language::find()->orderBy('name')->all(); return $this->render('update', compact('model', 'basePages', 'languages', 'baseModel')); }
/** * @return \yii\db\ActiveQuery */ public function getLanguages() { return $this->hasMany(Language::className(), ['language_id' => 'id']); }
/** * Updates an existing WebNews 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); $request = Yii::$app->request; $ok = true; $baseModel = null; if ($request->isPost) { // Mise à jour de la WebNews et de la BaseNews associée $post = $request->post(); /** @var BaseNews $baseModel */ if (!($baseModel = BaseNews::findOne($post['WebNews']['base_id']))) { $baseModel = new BaseNews(); } $ok &= $baseModel && $baseModel->updateBaseTagsFromRequest($post) && $baseModel->load($post) && $baseModel->save(true, null, true); $ok &= $model->load($post) && $model->save(); if (!$ok) { Yii::$app->session->setFlash('flash-warning', HLib::t('messages', 'There are errors in your form')); } else { Yii::$app->session->setFlash('flash-success', HLib::t('messages', 'Update successful')); if ($request->getBodyParam('action') == 'saveAndBackToList') { return $this->redirect(Url::to([$this->getControllerRoute() . '/index', 'page' => 1])); } } } // Affichage initial ou ré-affichage en cas d'erreur return $this->render('update', ['model' => $model, 'baseNews' => BaseNews::find()->orderBy('event_date DESC')->all(), 'languages' => Language::find()->orderBy('iso_639_code')->all(), 'baseModel' => $model->base]); }