findBy关系领域

问题描述:

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)); 

给 无法识别的领域:业主findBy关系领域

当然还有一种解决方法,但它看起来丑陋

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

是有使用findBy没有写我自己的方法的任何机会呢?

+0

你有没有想过这个?如果不是,我可能会为您提供解决方案。 – Squazic 2012-08-01 20:23:35

所有内容在您的代码中都是正确的。 Doctrine2目前处于测试阶段,这是beta4中的一个错误。尝试从GIT下载最新版本,它应该工作!

owner不是一个字段,owner_id是。尝试使用它。

+0

结果于:无法识别的字段:owner_id – BoomyJee 2010-10-30 15:10:08