簡體   English   中英

symfony2學說多對數關系

[英]symfony2 doctrine manytoone relationship

我認為這是必須為我的問題提供一個簡單的解決方案,但我無法解決該問題,而且我不確定為什么。

場景:我有2個實體:Bike和Review,關系是OneToMany:

/**
 * Bike
 *
 * @ORM\Entity(repositoryClass="BikeRepository")
 * @ORM\HasLifecycleCallbacks
 * @ORM\Table(name="bike")
 */
class Bike
{
...
    /**
     * @var string
     *
     * @ORM\OneToMany(targetEntity="Review", mappedBy="bike", cascade={"persist"}, fetch="EXTRA_LAZY")
     */
    private $reviews;
...
}

/**
 * Review
 *
 * @ORM\Entity(repositoryClass="ReviewRepository")
 * @ORM\Table(name="review")
 * @ORM\HasLifecycleCallbacks()
 */
class Review
{
    ...

    /**
     * @var integer
     *
     * @ORM\ManyToOne(targetEntity="Bike", inversedBy="reviews", fetch="EXTRA_LAZY")
     * @ORM\JoinColumn(name="bike_id", referencedColumnName="id")
     */
    private $bike;
    ....
}  

吸氣劑和二傳手是由學說產生的。

在前端,我有一個表單,其中Bike作為隱藏字段,因為有一個帶有Ajax請求的自動填充字段。 因此,在控制器中,如果$ form-> isValid()從隱藏字段中獲取自行車ID,請搜索該自行車的數據庫,並將自行車設置如下:

if ($form->isValid()) {
    if ($bikeId) {
        $bike = $this->em->getRepository('BikeBundle:Bike')->findOneBy(array('id' => $bikeId));
        $review->setBike($bike);
    }
    $this->em->persist($review);
    $this->em->flush();
}  

這總是給我bike_id數據庫中的NULL。 知道有什么問題嗎? 我試圖在堅持之前轉儲$ review,我可以得到自行車的詳細信息,所以我不知道出了什么問題。 在實體setBike()方法中,除了getId()返回NULL之外,我可以獲取該Bike對象的任何值。

謝謝你的幫助。

  1. 您不需要保留現有實體,因此只需保存您的實體,例如

    $ review-> setBike($ bike); $ this-> em-> flush();

  2. 嘗試檢查該學說是否真的返回任何實體。.恐怕它是否不返回Bike實體

UPD:還嘗試檢查Bike Entity類的名稱空間。 您的情況似乎不對,因為通常看起來像“ AcmeBikeBundle:Bike”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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