簡體   English   中英

Symfony2學說,通過其外鍵聯接表

[英]Symfony2 Doctrine, joining tables by its foreign key

我已經將兩個表以及已提供給我的數據導入到Symfony數據庫中,並希望通過外鍵將兩個表連接起來。

具有列:ID,日期,dano,partno,batchno
表格Sub具有以下列:ID,main_id,rackno,code,qty

我想將表以一對多(?)的形式連接在一起,因為一個主對象可以包含許多子對象。 例如,一個dano可以有多個rackno。 我猜測Table Sub中的* main_id *和Table Main中的id是將用於連接的鍵。

我該如何將二者與教義結合在一起? 我的表由其自己的實體文件分開。

在Main.php上

class Main
{
/**
 * @var integer
 * @ORM\ManyToOne(targetEntity="Sub", mappedBy="mainId")
 */
private $id;

/**
 * @var \DateTime
 */
private $indate;

/**
 * @var string
 */
private $dano;

/**
 * @var string
 */
private $partno;

/**
 * @var integer
 */
private $batchno;

在Sub.php上:

class Sub
{
/**
 * @var integer
 */
private $id;

/**
 * @var integer
 * @ORM\ManyToOne(targetEntity="Main", inversedBy="id")
 * @ORM\JoinColumn(name="id", referencedColumnName="id")
 */
private $mainId;

/**
 * @var string
 */
private $rackno;

/**
 * @var string
 */
private $code;

/**
 * @var integer
 */
private $qty;

您不能像這樣處理。 如果需要ManyToOne關系,則需要這樣做:

在您的主班:

/**
 * @ORM\OneToMany(targetEntity="Sub", mappedBy="main")
 */
private $sub;

在您的子類中:

/**
 * @ORM\ManyToOne(targetEntity="Main", inversedBy="sub")
 * @ORM\JoinColumn(name="main_id", referencedColumnName="id")
 */
 private $main;

並且不要忘記同步您的數據庫;)

暫無
暫無

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

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