首页 > 解决方案 > 如何在 symfony 中添加外键(一对多)

问题描述

我有两个实体'Panier'和'Reservation'我想添加一个一对多的外键(实体'Panier'可以有很多'Reservation'而'Reservation'只有一个'Panier' id),所以我必须在我的 Reservation entity class 中添加“Panier”的外键“id”。这是我的预订班:

class Reservation { /** * @var integer * * @ORM\Column(name="id", type="integer", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ 私人 $id;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="dateReservation", type="datetime", nullable=false)
 */
private $datereservation = 'CURRENT_TIMESTAMP';

/**
 * @var integer
 *
 * @ORM\Column(name="quantite", type="integer", nullable=false)
 */
private $quantite;

/**
 * @var float
 *
 * @ORM\Column(name="total", type="float", precision=10, scale=0, nullable=true)
 */
private $total;

/**
 * @var string
 *
 * @ORM\Column(name="type", type="string", length=255, nullable=false)
 */
private $type;

/**
 * @var string
 *
 * @ORM\Column(name="seat", type="string", length=255, nullable=false)
 */
private $seat;

/**
 * @var integer
 *
 * @ORM\Column(name="payer", type="integer", nullable=true)
 */
private $payer;

/**
 * @var string
 *
 * @ORM\Column(name="nomReservation", type="string", length=255, nullable=true)
 */
private $nomreservation;

/**
 * @var \Event
 *
 * @ORM\ManyToOne(targetEntity="Event")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="event_id", referencedColumnName="id")
 * })
 */
private $event;

/**
 * @var \User
 *
 * @ORM\ManyToOne(targetEntity="User")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 * })
 */
private $user;

标签: symfonydoctrineforeign-keysentity

解决方案


<?php

/** @Entity */
class Reservation {

  /**
   * @ManyToOne(targetEntity="Panier", inversedBy="reservations")
   * @JoinColumn(name="panier_id", referencedColumnName="id")
   */
   private $panier;

}

/** @Entity */
class Panier {

   /**
    * One Panier has many Reservations. This is the inverse side.
    * @OneToMany(targetEntity="Reservation", mappedBy="panier")
    */
    private $reservations;

    public function __construct() {
       $this->features = new ArrayCollection();
    }
}

推荐阅读