[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['post'], ], ], ]; } /** * Lists all Message models. * @return mixed */ public function actionIndex() { $searchModel = new MessageSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * Displays a single Message model. * @param integer $id * @return mixed */ public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), 'model_lang'=>$model_lang = MessageLang::findOne(['message_id'=>$id]) ]); } /** * Creates a new Message model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $message_langs = array(); $message = new Message(); $images = array(); $message->loadDefaultValues(); $langs = Language::getActiveLanguages(); $default_lang = Language::getDefaultLang(); $isValid = false; if(!empty(\Yii::$app->request->post())) { $isValid = true; $message->load(\Yii::$app->request->post()); $isValid = $message->validate(); if(empty(\Yii::$app->request->post()['MessageLang'])) { $message_langs[$default_lang->language_id] = new MessageLang(); $isValid = MessageLang::validateMultiple($message_langs) && $isValid; } else { foreach(\Yii::$app->request->post()['MessageLang'] as $index => $message_lang) { $message_langs[$index] = new MessageLang(); } MessageLang::loadMultiple($message_langs, \Yii::$app->request->post()); // $isValid = MessageLang::validateMultiple($message_langs) && $isValid; } } else { $message_langs[$default_lang->language_id] = new MessageLang(); } if($isValid) { $message->save(); $first = 1; foreach($message_langs as $message_lang) { $message_lang->message_id=$message->id; $message_lang->save(); } $this->redirect('index'); } else { return $this->render('create', [ 'message_langs' => $message_langs, 'message' => $message, 'langs' => $langs, ]); } } /** * Updates an existing Message model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $message = $this->findModel($id); $message_langs=$message->getMessageLangs()->where(['>=', 'lang_id', '1'])->indexBy('lang_id')->all(); $langs = Language::getActiveLanguages(); $default_lang = Language::getDefaultLang(); $isValid = false; $post=\Yii::$app->request->post(); if(!empty($post)) { $message->load($post); $isValid = $message->validate(); } if(empty($post['MessageLang'])) { $isValid = MessageLang::validateMultiple($message_langs) && $isValid; } else { foreach($post['MessageLang'] as $index => $message_lang) { if (!array_key_exists($index, $message_langs)) { $message_langs[$index] = new MessageLang(); $message_langs[$index]->message_id = $message->id; } } MessageLang::loadMultiple($message_langs,$post); } if($isValid) { $message->save(); $first = 1; foreach($message_langs as $message_lang) { $message_lang->message_id=$message->id; $message_lang->save(); } $this->redirect('index'); } else { return $this->render('update', [ 'message_langs' => $message_langs, 'message' => $message, 'langs' => $langs, ]); } } /** * Deletes an existing Message model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { foreach(MessageLang::findAll(['message_id'=>$id])as $message_lang) { $message_lang->delete(); } $this->findModel($id)->delete(); return $this->redirect(['index']); } /** * Finds the Message model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Message the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Message::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }