/** * Update existing expense from the submitted data or create a new expense at a specific location. * * @ApiDoc( * resource = true, * input = "AppBundle\Form\ExpenseType", * statusCodes = { * 201 = "Returned when a new resource is created", * 204 = "Returned when successful", * 400 = "Returned when the form has errors" * } * ) * * @Annotations\View( * template="AppBundle:Expense:editExpense.html.twig", * templateVar="form" * ) * * @param Request $request the request object * @param int $id the expense id * * @return FormTypeInterface|RouteRedirectView * * @throws NotFoundHttpException when expense not exist */ public function putExpenseAction(Request $request, $id) { $expense = $this->getExpenseManager()->get($id); if (false === $expense) { $expense = new Expense(); $expense->id = $id; $statusCode = Codes::HTTP_CREATED; } else { $statusCode = Codes::HTTP_NO_CONTENT; } $e = $this->get('request')->request->all(); $dateName = 'created_at'; if (isset($e[$dateName])) { $expense->setcreatedAt($e[$dateName]); } if (isset($e['description'])) { $expense->setDescription($e['description']); } if (isset($e['amount'])) { $expense->setAmount($e['amount']); } if (isset($e['comment'])) { $expense->setComment($e['comment']); } $userApp = $this->get('app.user'); $expense->setUser($userApp->getUserId()); $this->getExpenseManager()->set($expense); return $this->routeRedirectView('get_expense', array('id' => $expense->getId()), $statusCode); #$form = $this->createForm(new ExpenseType(), $expense); // $form->submit($request); // if ($form->isValid()) { //} return $form; }