1

我正在使用Nelmio 的 Alice配置我的模拟/开发数据,到目前为止一切顺利。

我正在使用hautelook 的 AliceBundle与 Symfony 3.1 进行很好的集成。

我遇到的问题是以下问题:

我有一组数据由外部任务自动生成并插入到数据库中,在我需要引用其中一个的Doctrine 对象中。我已经创建了正确的Doctrine Entity映射字段和主键,但我不知道如何从我的students.yml.

我尝试了以下方法:

AppBundle\Entity\Student:
    clientApp1:
        name: George
        class: 3
        age: 20
        active: true
        groups: [1, 3]

是任务已经插入数据库的组1和组。3

每当我尝试将我的装置加载到数据库中时,我都会收到以下错误

~>bin/console hautelook_alice:doctrine:fixtures:load

[Hautelook\AliceBundle\Alice\DataFixtures\LoadingLimitException]

已达到 5 个加载文件的限制。无法加载以下文件:

/home/user/App/src/AppBundle/DataFixtures/ORM/dev/students.yml:
- 未找到 ID 为 1 且类 AppBundle\Entity\Group 的实体

我只有一个文件,所以错误的第一部分没有意义,我认为这更像是他们的报告系统的错字,但第二部分是让我烦恼的部分......主键(Id)是正确的,但是它没有找到它。

我一直在查看文档,但我没有看到任何相关内容,有什么想法吗?

编辑:我只是意识到该命令确实清除数据库,因此 Alice 无法找到Group 1Group 2。我将尝试解决它,看看是否可以在不清除的情况下执行该命令...

4

2 回答 2

3

hautelook_alice:doctrine:fixtures:load命令清除数据库,因此,如果您想在您的灯具中引用数据库中存在的实体,您应该附加您的灯具。标志--append做所有的工作。

$ bin/console hautelook_alice:doctrine:fixtures:load --append

于 2016-08-31T07:04:05.060 回答
0

错误在另一个夹具文件上:src/AppBundle/DataFixtures/ORM/dev/students.yml:但不是您期望加载的那个:alice-fixtures.yml所以只需删除第一个文件并尝试再次加载您的夹具:bin/console h:d:f:l

于 2016-08-30T13:10:10.203 回答