IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Doctrine et controller


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut 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 :

    Nom : Capture.PNG
Affichages : 567
Taille : 67,5 Ko

    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 :
    Nom : Capture2.PNG
Affichages : 375
Taille : 63,2 Ko

    Mais quand j’exécute le code via le navigateur voici mon erreur :
    Nom : Capture3.PNG
Affichages : 302
Taille : 46,4 Ko

    Pouvez vous me donner un coup de mains ? merci beaucoup à tout le monde !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    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

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    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.

Discussions similaires

  1. [VB6] [Réseau] Prendre le contrôle d'un téléchargement
    Par Tchetch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/10/2002, 14h18
  2. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09
  3. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo