class CarController
{
public function __construct(
CarRepository $carRepository, // spezifischer
Form $carForm, // spezifischer
Router $router,
EventDispatcher $dispatcher // <- neu!
) { /*...*/ }
/**
* @Route("/{id}/edit", name="car_edit")
* @Method({"GET", "POST"})
* @Template("car/edit.html.twig")
*/
public function editAction(Request $request, int $id)
{
$car = $this->carRepository->find($id);
$this->carForm->setData($car);
$this->carForm->handleRequest($request);
if ($this->carForm->isSubmitted() && $this->carForm->isValid()) {
$this->dispatcher->dispatch('app.car_edited', new CarEvent($car)); // <- neu!
return new RedirectResponse(
$this->router->generate('car_edit', ['id' => $car->getId()])
);
}
return ['car' => $car, 'form' => $this->carForm->createView()];
}
}