[英]Doctrine 2 Mapping One-to-Many / Many-to-One
我將我的應用程序從doctrine1轉換為doctrine2.4,我確實實現了數據庫自動映射,但缺少一些關系:
表:產品productid,標題,價格
表:LocationProducts產品編號,產品編號,功能編號,數量
因此每個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;
請參閱此鏈接中的mappedBy:-http: //docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-onetomany
希望這可以幫助。
干杯!
錯誤消息指出沒有關聯,因此您需要添加它。 當前,您的關系是單向的,您不能在p.LocationProducts
加入,因為它不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.