我正在用Nelmio的Alice配置我的mock/dev数据,到目前为止一切顺利。
我正在使用hatelook的AliceBundle来获得与Symfony 3.1的良好集成。
我遇到的问题是下面的问题:
我有一组数据是自动生成的,并由外部任务插入到数据库中,在其中一个Doctrine Objects我需要引用其中一个。我已经创建了适当的Doctrine Entity映射字段和主键,但我不知道如何从我的students.yml
引用这些对象之一。
我试过以下方法:
AppBundleEntityStudent:
clientApp1:
name: George
class: 3
age: 20
active: true
groups: [1, 3]
为任务已经插入到数据库中的1
和3
组。
我得到以下错误每当我试图加载我的fixture 到数据库:
~>bin/console hautelook_alice:doctrine:fixtures:load
[爱丽丝Hautelook AliceBundle DataFixtures LoadingLimitException]
加载文件达到5个限制。无法加载以下文件:
/home/user/App/src/AppBundle/DataFixtures/ORM/dev/students.yml:
-未找到Id为1和类AppBundleEntityGroup的实体
我只有一个文件,所以错误的第一部分没有意义,我认为这更多的是他们的报告系统的打字错误,但第二部分是一个困扰我…主键(Id)是正确的,但是没有找到它。
我一直在看文档,但是我没有看到任何相关的,你有什么想法吗?
EDIT:我刚刚意识到该命令确实清除数据库,因此Alice不可能找到组1和组2。我将尝试解决这个问题,看看命令是否可以在没有清除的情况下执行…
hautelook_alice:doctrine:fixtures:load
命令清除数据库,因此,如果您想从数据库中引用您的fixture中存在的实体,您应该附加您的fixture。标志--append
完成所有工作
$ bin/console hautelook_alice:doctrine:fixtures:load --append
错误是在另一个夹具文件:src/AppBundle/DataFixtures/ORM/dev/students.yml:
,但不是你期望被加载的:alice-fixtures.yml
所以只是删除第一个文件,并尝试再次加载你的夹具:bin/console h:d:f:l