ManyToOne / OneToOne协会

问题描述 投票:0回答:1

我有一个实体产品,其中包含两个字段urlTracking和urltrackingDoc,类型分别为Urltracking和实体Urltracking,其中包含产品。我需要在Product和Urltracking之间建立关系,例如OneToOne ManyToOne。

问题是,当我通过id查找urlTracking时,我得到的产品已满,但是当我通过id搜索urlTrackingDoc时,我得到了产品的空值

/**
 *@ORM\Table(name="product")
 * @ORM\Entity(repositoryClass="App\ProductBundle\Repository\ProductRepository")
 */
class Product{


    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue()
     * @var int
     */
    private $id;


    /**
     * @var UrlTracking $urlTracking
     * @ORM\OneToOne(targetEntity="App\UrlTrackingBundle\Entity\UrlTracking", inversedBy="product")
     * @ORM\JoinColumn(name="url_tracking_id", referencedColumnName="id")
     */
    private $urlTracking;

    /**
     * @var UrlTracking $urlTrackingDoc
     * @ORM\OneToOne(targetEntity="App\UrlTrackingBundle\Entity\UrlTracking", inversedBy="product")
     * @ORM\JoinColumn(name="url_tracking_doc_id", referencedColumnName="id")
     */
    private $urlTrackingDoc;

    //...
}

/**
 *@ORM\Table(name="url_tracking")
 * @ORM\Entity(repositoryClass="App\UrlTrackingBundle\Repository\UrlTrackingRepository")
 */
class UrlTracking{


    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue()
     * @var int
     */
    private $id;

    /**
     * @var Product
     * @ORM\OneToOne(targetEntity="App\ProductBundle\Entity\Product", mappedBy="urlTracking")
     * @ORM\OneToOne(targetEntity="App\ProductBundle\Entity\Product", mappedBy="urlTrackingDoc")
     */
    private $product;
    //...
}
symfony orm doctrine
1个回答
0
投票

您必须在UrlTracking实体中具有2个产品属性,例如$product$productDoc每个都有其自己的理论映射。

© www.soinside.com 2019 - 2024. All rights reserved.