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 :

Fonction qui plante Apache [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Fonction qui plante Apache
    Bonjour,

    Je rencontre un problème avec Symfony 2.3.1.

    J'ai deux entités liées en One to One, "Informations" et "User", dont "Informations" est la propriétaire.

    Je tente tout simplement de récupérer dans le contrôleur le contenu de l'entité "Informations" en fonction de l'entrée "username" de l'entité "User".

    Pour çà, j'ai dans le fichier InformationsRepository.php :

    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
    namespace Gam\UserBundle\Entity;
     
    use Doctrine\ORM\EntityRepository;
     
    /**
     * InformationsRepository
     *
     * This class was generated by the Doctrine ORM. Add your own custom
     * repository methods below.
     */
    class InformationsRepository extends EntityRepository
    {
        public function getInformationsAvecUser($username)
        {
          $qb = $this->createQueryBuilder('a')
                     ->join('a.user', 'c')
                     ->where($qb->expr()->in('c.username', $username));
     
          return $qb->getQuery()
                    ->getResult();
        }
    }
    Et dans mon contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $Information = $this->getDoctrine()
                            ->getManager()
                            ->getRepository('GamUserBundle:Informations')
                            ->getInformationsAvecUser('UtilisateurTest');
    La ligne qui cause le crash est précisément "->where($qb->expr()->in('c.username', $username));" dans InformationsRepository.php. Je ne comprend vraiment pas pourquoi. Si j’enlève cette ligne de code, tout fonctionne. Une idée ?

    merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pourrais-tu regarder dans les logs d'erreurs d'apache?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    J'ai un bon paquet d'erreurs quand le problème se produit mais ça commence par celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Tue Jun 25 23:33:11.973656 2013] [:error] [pid 4832:tid 916] [client 127.0.0.1:51840] PHP Fatal error:  Call to a member function expr() on a non-object in E:\\wamp\\www\\gamesite\\src\\Gam\\UserBundle\\Entity\\InformationsRepository.php on line 19, referer: <a href="http://localhost/gamesite/web/app_dev.php" target="_blank">http://localhost/gamesite/web/app_dev.php</a>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Hello,

    Tu tentes d'appeler la méthode expr() sur ton objet qb alors que ce dernier n'est pas encore initialisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          $qb = $this->createQueryBuilder('a')
                     ->join('a.user', 'c')
                     ->where($qb->expr()->in('c.username', $username));

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Je vois l'idée, mais comment je peux contourner ça pour arriver à mes fins du coup ?

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    J'ai résolu mon problème en inversant la relation OnetoOne, ce qui m'a permis de récupérer les informations à partir de l'utilisateur directement !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deuxième passage dans une fonction qui plante
    Par sempere dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 05/11/2013, 05h57
  2. Réponses: 15
    Dernier message: 29/11/2008, 11h56
  3. fonction qui plante
    Par étoile de mer dans le forum Débuter
    Réponses: 3
    Dernier message: 19/09/2008, 09h42
  4. fonction qui plante mon programme
    Par étoile de mer dans le forum Débuter
    Réponses: 21
    Dernier message: 22/08/2008, 15h08
  5. [Upload] Upload qui plante en fonction de la taille
    Par jeyce dans le forum Langage
    Réponses: 5
    Dernier message: 10/07/2006, 10h19

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