繁体   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