Symfony2 Doctrine,通过其外键连接表

时间:2014-04-11 21:25:35

标签: php mysql sql symfony doctrine-orm

我已经导入了两个表,这些表包含给我的数据到Symfony数据库中,并希望通过外键加入这两个表。

包含列:ID,indate,dano,partno,batchno
Sub 包含列:ID,main_id,rackno,code,qty

我想将这些表一起作为一对多(?)加入,因为一个main可以有很多subs。例如,一个dano可以有很多rackno。我猜表 Sub 中的* main_id *和表中的 id 是将用于加入的键。

如何与Doctrine一起加入这两个?我将表分隔为自己的Entity文件。

On 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;

1 个答案:

答案 0 :(得分:0)

你不能这样处理。如果您需要ManyToOne关系,则需要:

在您的主课程中:

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

在您的Sub类中:

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

不要忘记同步你的数据库;)