Question

class Profile {
    /** @OneToMany(targetEntity="Link", mappedBy="owner") */
    private $links;  
}

class Link {
    /**
    * @ManyToOne(targetEntity="Profile", inversedBy="links")
    * @JoinColumn(name="owner_id", referencedColumnName="id")
    */    
    public $owner;
    /**
     * @ManyToOne(targetEntity="Profile")
     * @JoinColumn(name="subject_id", referencedColumnName="id")
     */    
    public $subject;    
}

$em->findBy(array("owner"=>$owner,"subject"=>$subject)); 

donne terrain non reconnu: propriétaire

il existe une solution bien sûr, mais il semble laid

$em
->createQuery('SELECT l FROM \Dating\Models\Link l WHERE l.owner = ?1 AND l.subject = ?2')
->setParameter(1,$owner)
->setParameter(2,$subject)
->getResult();

est-il possible en utilisant findBy sans écrire ma propre méthode?

Était-ce utile?

La solution

Tout est correct dans votre code. Doctrine2 est actuellement en version bêta et ce fut un bogue dans beta4. Essayez de télécharger la dernière version de GIT et il devrait fonctionner!

Autres conseils

owner est pas un champ, owner_id est. Essayez d'utiliser cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top