簡體   English   中英

教義2一對多/多對一映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM