Bonjour,
Je ne m'y prends peut-être pas comme il le faut, mais je souhaite faire un test sur l'existance d'enregistrement dans une entité avant l'action des Controllers.
J'ai donc pensé au Listener, mais je ne vois pas comment faire l'appel au Repository.
Voici le code de mon Listener:
Et voici le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?php namespace Glsr\GestockBundle\Listener; use Symfony\Component\HttpKernel\Event\FilterControllerEvent; class GlsrControllerListener { public function onKernelController(FilterControllerEvent $event) { // nous récupérons l'objet controller depuis l'évènement reçu $controller = $event->getController(); var_dump($controller); // vérifie que l'objet Company n'est pas vide $etm = $controller->getDoctrine()->getManager(); $repoCompany = $etm->getRepository('GlsrGestockBundle:Company'); $company = $repoCompany->findAll(); if (empty($company)) { // On définit un message flash $controller->get('session')->getFlashBag()->add('info', 'Il faut renseigner les informations de la société'); // On redirige vers la page d'ajout d'information de la société $controller->redirect($controller->generateUrl('glstock_company_add')); } ...
FatalErrorException: Error: Call to a member function getDoctrine() on a non-object in G:\wamp\www\Symfony-2\src\Glsr\GestockBundle\Listener\GlsrControllerListener.php line 16
Partager