我在多對多關係中遇到查詢生成器的一些麻煩。查詢生成器多對多關係
我有一個實體公司,擁有子公司一樣,所以我有:
class Company {
private $id;
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="Company")
* @ORM\JoinTable(name="company_relation",
* joinColumns={
* @ORM\JoinColumn(name="id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="subcompany", referencedColumnName="id")
* }
*)
*/
private $ChildrenCompany;
[...]
}
然後我試圖做一個查詢生成器,它返回已determinated子公司(例如子公司ID爲5家公司)。我試圖在兩個方面:
方法A)
$query->select ('c');
$query->from(MyBundle:Company, 'c');
$query->leftJoin('c.ChildrenCompany','j');
$query->where('j.subcompany = 5');
它不工作,並給我的錯誤:類應用程序\ Sademer \ CoreBundle \實體\公司沒有字段或協會命名子公司
方法B)
$query->select ('c');
$query->from(MyBundle:Company, 'c');
$query->where('j.ChildrenCompany = 5');
它不工作,並給我的錯誤:無效PathExpression。 StateFieldPathExpression或SingleValuedAssociationField預期。
謝謝! ;)
你能發表更多的代碼。例如,你實例化查詢生成器的地方。 – RHarrington
我實例化查詢生成器,如: $ query = $ this-> getModelManager() - > createQuery(MyBundle:Company,'entity'); – Angel