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

4

2 回答 2

1

您的代码中的一切都是正确的。Doctrine2 目前处于 BETA 中,它是 beta4 中的一个错误。尝试从GIT下载最新版本,它应该可以工作!

于 2010-11-01T13:49:41.507 回答
0

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

于 2010-10-30T15:02:37.793 回答