/** * @return \Symfony\Component\HttpFoundation\Response * @Route("/edit/{id}", name="unit_edit") * @Method({"GET", "POST"}) * @ParamConverter("post", class="AppBundle:Unit") * * @param Request $request * @param Unit $unit * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function editAction(Request $request, Unit $unit) { $form = $this->createForm('AppBundle\\Form\\Type\\UnitType', $unit); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { /** @var Unit $unit */ $unit = $form->getData(); $editRequest = new EditUnitRequest($unit->getId(), $unit->getName(), $unit->getShortcut()); $this->editUnitUseCase->execute($editRequest); return $this->redirectToRoute('unit_list', array('id' => $unit->getId())); } return $this->render('AppBundle:Unit:edit.html.twig', array('form' => $form->createView())); }
/** * @When I edit unit :arg1 with new name :arg2 and :arg3 shortcut */ public function iEditUnitWithNewNameAndShortcut($unitName, $newName, $newShortcut) { /** @var UnitListItem[] $units */ $units = array_filter($this->unitsList, function (UnitListItem $unitListItem) use($unitName) { return $unitListItem->name == $unitName; }); $unitId = null; if (count($units)) { $unitId = $units[0]->id; } $this->editUnitUseCase->execute(new EditUnitRequest($unitId, $newName, $newShortcut)); }