public function store(UserFormRequest_template $request) { $validator = Validator::make($request->all(), $request->rules()); if ($validator->fails()) { return redirect('create')->withErrors($validator)->withInput(); } else { if (\Input::has('template_id')) { $id = \Input::get('template_id'); $template = TemplateModel::find($id); $alert['msg'] = 'Template has been updated successfully'; } else { $template = new TemplateModel(); $alert['msg'] = 'Language has been created successfully'; } $template->title = \Input::get('title'); $template->slug = \Input::get('slug'); $template->save(); $alert['type'] = 'success'; return Redirect::route('template')->with('alert', $alert); } }
/** * Create Template model * @return array */ public function actionCreateTemplate() { if (Yii::$app->request->isAjax) { // Response fornat Yii::$app->response->format = Response::FORMAT_JSON; // Extract FormBuilder data from post request $post = Yii::$app->request->post(); $data = ['FormBuilder' => Json::decode($post['FormBuilder'], true)]; $formBuilder = new FormBuilder(); // Flags variables $success = false; $id = false; $message = ''; $code = 0; // Form Builder Validation if ($formBuilder->load($data) && $formBuilder->validate()) { // Save data in single transaction $transaction = Template::getDb()->beginTransaction(); try { // Parse html form fields to array $formDOM = new FormDOM(); // If two elements has same id, throw a exception $formDOM->loadHTML(ArrayHelper::getValue($data, 'FormBuilder.html')); // Populate Template Model and Save $postTemplate = ['Template' => ['name' => ArrayHelper::getValue($data, 'FormBuilder.data.settings.name'), 'builder' => Json::htmlEncode(ArrayHelper::getValue($data, 'FormBuilder.data')), 'html' => Html::encode(ArrayHelper::getValue($data, 'FormBuilder.html'))]]; // Save Template Model $templateModel = new Template(); if ($templateModel->load($postTemplate) && $templateModel->save()) { // Set form id $id = $templateModel->primaryKey; } else { throw new Exception(Yii::t('app', 'Error saving data'), 1); } $transaction->commit(); // Change success flag and message $success = true; $message = Yii::t("app", "The template has been successfully created."); } catch (Exception $e) { // Rolls back the transaction $transaction->rollBack(); // Rethrow the exception // throw $e; $message = $e->getMessage(); $code = $e->getCode(); } } // Response to Client $res = array('success' => $success, 'id' => $id, 'action' => 'create', 'message' => $message, 'code' => $code); return $res; } return ''; }