Doctrine 不生成实体 ID
Doctrine not generating entity ID
我正在尝试创建一个实体,但我在该实体的 ID 上得到了一个空值,这是一个生成的值。
控制器:
if($buRepository->findOneBy(['buName' => $row['Bu1'], 'dateDeleted' => null]) > null)
elseif($buRepository->findOneBy(['buName' => $row['Bu1'], 'dateDeleted' => null]) === null)
{
$bu1 = new Bu();
$bu1->setBuName($row['Bu1']);
$bu1->setLastUpdated(new \DateTime('now'));
$bu1->setDateDeleted(null);
$bu1->setSrcId(3);
$bu1->setIdInSource($bu1->getBuId());
}
实体:
/**
* @var int
*
* @ORM\Column(name="bu_id", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $buId;
一旦我的实体尝试刷新,我就在 buid 上收到错误,说它不能为空。
尝试 MySQL
跌至 AUTO_INCREMENT 的 AUTO 策略
如果实体未刷新,则不会创建和分配 Buid
,解决它的最佳方法是放置触发器。
由于 IdInSource
不能是 NULL
值,但应该是 BuId
(没有关系只是分配 INT
值),我给它分配了一个值 0。
对于 IdInSource
为 0
的每个实体,我的数据库触发器将其替换为 BuId
。
我正在尝试创建一个实体,但我在该实体的 ID 上得到了一个空值,这是一个生成的值。
控制器:
if($buRepository->findOneBy(['buName' => $row['Bu1'], 'dateDeleted' => null]) > null)
elseif($buRepository->findOneBy(['buName' => $row['Bu1'], 'dateDeleted' => null]) === null)
{
$bu1 = new Bu();
$bu1->setBuName($row['Bu1']);
$bu1->setLastUpdated(new \DateTime('now'));
$bu1->setDateDeleted(null);
$bu1->setSrcId(3);
$bu1->setIdInSource($bu1->getBuId());
}
实体:
/**
* @var int
*
* @ORM\Column(name="bu_id", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $buId;
一旦我的实体尝试刷新,我就在 buid 上收到错误,说它不能为空。
尝试 MySQL
跌至 AUTO_INCREMENT 的 AUTO 策略如果实体未刷新,则不会创建和分配 Buid
,解决它的最佳方法是放置触发器。
由于 IdInSource
不能是 NULL
值,但应该是 BuId
(没有关系只是分配 INT
值),我给它分配了一个值 0。
对于 IdInSource
为 0
的每个实体,我的数据库触发器将其替换为 BuId
。