Example #1
0
    /**
     * Updates a particular model.
     * If update is successful, the browser will be redirected to the 'view' page.
     * @param integer $id the ID of the model to be updated
     */
    public function actionUpdate($id)
    {
        $model = $this->loadModel($id);
        $messageModels = LanguageModel::model()->getAllLanguageModels($id);

        if (isset($_POST['SourceMessageModel'])) {
            $model->attributes = $_POST['SourceMessageModel'];
            if ($_POST['MessageModel']) {
                foreach ($_POST['MessageModel'] as $key => $value) {
                    if (!empty($value['translation'])) {
                        $messageModel = MessageModel::model()->findByAttributes(array('id' => $model->id, 'language' => $key));
                        if ($messageModel == null) {
                            $messageModel = new MessageModel;
                            $messageModel->language = $key;
                            $messageModel->id = $model->id;
                            $messageModel->setIsNewRecord(true);
                        } else {
                            $messageModel->setIsNewRecord(false);
                        }
                       // die($messageModel->isNewRecord);
                        $messageModel->attributes = $value;
                        $messageModel->save(false);
                    }
                }
            }
            if ($model->save())
                $this->redirect(array('index'));
        }

        $this->render('update', array(
            'model' => $model,
            'messageModels' => $messageModels,
        ));
    }