gpt4 book ai didi

symfony - 我可以用 Alice Fixtures 覆盖自动增量 ID 吗?

转载 作者:行者123 更新时间:2023-12-02 05:48:47 24 4
gpt4 key购买 nike

我将 Symfony2 与 Doctrine 结合使用,并使用 Alice Fixture 包来生成用于测试的装置。

在一种情况下,我需要创建一个 id 为 148 的固定装置来进行特定测试。我们所有的 id 都配置为 auto_increment,因此我当前正在创建 147 条虚拟记录,只是为了创建我需要的记录。

我希望使用这个定义来强制将 id 设置为 148:

 invoiceClassNoClass (extends invoiceClass):
id: 148
sortOrder: 1
label: 'No Class'

不幸的是,这不起作用。从谷歌搜索中,我读到一条简短的评论,指出我首先需要向我的实体添加一个 setId 方法。我尝试过,但没有什么区别。实际上,如果不需要,我不想添加为 setId 方法,因为它违反了我们从不允许设置 id 的完整性规则。

也许有可以使用的反射类?也许这是 Alice 内置的,而我却不知道?

最佳答案

如果您希望学说为自动增量 ID 保存特定值,则必须在学说元数据中停用自动增量。参见

Explicitly set Id with Doctrine when using "AUTO" strategy

$this->em->persist($entity);

$metadata = $this->em->getClassMetaData(get_class($entity));
$metadata->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());

关于symfony - 我可以用 Alice Fixtures 覆盖自动增量 ID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942619/

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