gpt4 book ai didi

php - Symfony2 Doctrine,通过外键连接表

转载 作者:行者123 更新时间:2023-11-30 00:24:02 25 4
gpt4 key购买 nike

我已将两个包含给我的数据的表导入到 Symfony 数据库中,并希望通过外键将两个表连接起来。

Main包含列:ID、indate、dano、partno、batchno
Sub 包含列:ID、main_id、rackno、代码、数量

我想将表作为一对多(?)连接在一起,因为一个主表可以有多个子表。例如,一个 dano 可以有多个rackno。我猜测表 Sub 中的 *main_id* 和表 Main 中的 id 是将用于连接的键。

我该如何将两者与 Doctrine 结合起来?我有由自己的实体文件分隔的表。

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

最佳答案

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

在你的主类中:

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

在你的子类中:

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

并且不要忘记同步您的数据库;)

关于php - Symfony2 Doctrine,通过外键连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23022860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com