/** * @Route("/edit", name="edit") * @Request({"id": "int"}) */ public function editAction($id = 0) { $formmaker = App::module('bixie/formmaker'); if (!($form = Form::find($id))) { $form = Form::create(); } if (!$form) { throw new NotFoundException(__('Form not found.')); } return ['$view' => ['title' => __('Form'), 'name' => 'bixie/formmaker/admin/edit.php'], '$data' => ['config' => $formmaker->config(), 'types' => $formmaker->getFieldTypes(), 'formitem' => $form]]; }
/** * @Route("/", methods="POST") * @Route("/{id}", methods="POST", requirements={"id"="\d+"}) * @Request({"formitem": "array", "id": "int"}, csrf=true) */ public function saveAction($data, $id = 0) { if (!($form = Form::find($id))) { $form = Form::create(); unset($data['id']); } if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) { App::abort(400, __('Invalid slug.')); } try { $form->save($data); } catch (Exception $e) { App::abort(400, $e->getMessage()); } return ['message' => 'success', 'formitem' => $form]; }