-
3 pièce(s) jointe(s)
Doctrine et controller
Bonjour ,
Avant toutes choses je tient à dire que je débute avec symfony et que j'ai encore beaucoup de choses à apprendre avec la POO.
Je vous expose mon problème :
J'ai un controller qui affiche une vue twig assez simple comme sur le Screenshots ci-dessous :
Pièce jointe 313101
Comme vous pouvez le constatez j’appelle une méthode "createUser' qui est dans ma classe "UserCrudController'.
Voici un Screenshots de ma classe en question :
Pièce jointe 313104
Mais quand j’exécute le code via le navigateur voici mon erreur :
Pièce jointe 313106
Pouvez vous me donner un coup de mains ? merci beaucoup à tout le monde !
-
1- pour instancier un objet, on fait appel à son constructeur exemple:
2-pour partager des fonctions entre plusieurs contrôleurs , c'est mieux de créer des services et de faire appel à ces fonctions à partir de ces services
-
Tu ne dois jamais instancier un contrôleur toi-même dans un autre contrôleur. Lorsque Symfony instancie le contrôleur, il lui passe ("injecte") un certain nombre d'éléments, dont le conteneur par la méthode setContainer(). C'est ce conteneur qui contient le service Doctrine. Lorsque tu instancies UserCrudController manuellement, Doctrine n'est pas présent.
Comme indiqué plus haut, dans ton cas il vaut mieux extraire le code qui crée un User dans une classe séparée, (qu'on appelle Service. Un service est juste une clase où tu mets ton propre code), que tu injectes ensuite dans tes contrôleurs.
Regarde la documentation si tu ne sait pas comment déclarer et utiliser une service (Si tu est en Symfony 3.3 c'est très facile!), et n'hésites pas si tu as des difficultés.