我正在将我的应用程序从doctrine1转换为doctrine2.4我做了自动映射从数据库,我错过了一些关系:
表:产品productid、标题、价格
表:LocationProductsId, productid, loctionid, qty
所以每个LocationProducts行有1个产品,每个产品可以在几个位置
在locationproducts类下的映射我得到:
/**
* @var 'Products
*
* @ORM'ManyToOne(targetEntity="Products")
* @ORM'JoinColumns({
* @ORM'JoinColumn(name="productid", referencedColumnName="productid")
* })
*/
private $productid;
和产品模型下没有关系,我试着添加它,但它失败了:它说productid映射已经存在
这是我的目标查询:$qb = $em->createQueryBuilder()
->select('p.productid,lp.qty AS totalqty')
->from('Products','p')
->innerJoin('p.LocationProducts','lp')
->setFirstResult( $offset )
->setMaxResults( $limit )
//getDQL
->getQuery();
返回错误:
Class Products has no association named LocationProducts
我错过了什么?谢谢。
您缺少由属性映射的注释。
<?php
/**
* @OneToMany(targetEntity="Phonenumber", mappedBy="user", cascade={"persist", "remove", "merge"}, orphanRemoval=true)
*/
public $phonenumbers;
在此链接中参考mapappedby:- http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-onetomany
希望对你有帮助。
干杯!
错误消息指出没有关联,因此需要添加关联。当前您的关系是单向的,您不能加入p.LocationProducts
,因为它不存在。