Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Depuis quelques jours, je consulte avec plaisir votre forum.
Le ton est chaleureux et les réponses intéressantes.
Mon problème est :
J'ai une entity doctrine qui dans une de ses méthodes doit appeler une autre entity :
namespace Application\Entity; use Doctrine\ORM\Mapping as ORM; use Application\Entity\EntityA; class EntityB { // Les attributs protected $unAttributDeB public function setUnAttibutDeB($val) { // ??? je ne sais pas comment obtenir cela => $entityA->find($val); // afin de faire ceci $this->unAttributDeB = $entityA->getUnAttributDeA(); } }
Pouvez-vous m'expliquer comment procéder ?
Dernière modification par manuclin (16-11-2012 11:59:11)
Hors ligne
Salut, oula ça fonctionne pas du tout comme ça qu'il faut faire.
Une entité doctrine sert uniquement à faire le lien entre ta base et une classe php via des annotations tu peux définir des relations entre les entités (de la même manière qu'entre des tables en fait).
Du coup si tu as besoin de faire des jointures à chaque requêtes ça se fait via annotation et doctrine fait les jointures tout seul soit tu utilises les repository pour écrire tes propres requêtes en DQL ou SQL avec les jointures qui vont bien pour récupérer les informations dont tu as besoin.
Hors ligne
Merci beaucoup pour ta réponse rapide Orkin.
Je replonge immédiatement dans la doc de doctrine.
Hors ligne
Effectivement, ce n'est pas la route à suivre manuclin. La règle absolue : ne jamais faire de requête directement depuis une entité. Dans ton cas, l'entité doit être chargée dans un service, par exemple, et passée à l'entité B.
Hors ligne