findBy关系字段

时间:2010-10-30 14:54:46

标签: php doctrine doctrine-orm

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

给出 无法识别的字段:所有者

当然有一种解决方法,但它看起来很难看

$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?

2 个答案:

答案 0 :(得分:1)

代码中的所有内容都是正确的。 Doctrine2目前在BETA中,它是beta4中的一个错误。尝试从GIT下载最新版本,它应该可以使用!

答案 1 :(得分:0)

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