Php 无法在Symfony2“中加载固定装置;找不到任何要加载的固定装置“;
我拼命地想把数据加载到数据库中。 调用global cli load函数时,一开始没有什么不好的地方:Php 无法在Symfony2“中加载固定装置;找不到任何要加载的固定装置“;,php,symfony,doctrine,osx-mountain-lion,fixtures,Php,Symfony,Doctrine,Osx Mountain Lion,Fixtures,我拼命地想把数据加载到数据库中。 调用global cli load函数时,一开始没有什么不好的地方: > purging database > loading [1] namespace_of_my_first_fixture_file > loading [2] namespace_of_my_second_fixture_file ... 但它在尝试从先前加载的设备(错误索引)中重新使用对象时失败了: 我查看数据库,没有在任何表中插入任何内容。如果我尝试只加载第一个夹具
> purging database
> loading [1] namespace_of_my_first_fixture_file
> loading [2] namespace_of_my_second_fixture_file
...
但它在尝试从先前加载的设备(错误索引)中重新使用对象时失败了:
我查看数据库,没有在任何表中插入任何内容。如果我尝试只加载第一个夹具(似乎是根据上面的粘贴加载的),我会出现一个错误:[InvalidArgumentException]
Could not find any fixtures to load in:
- src/MyOrg/MyBundleBundle/DataFixtures/ORM/MyFirstFixtureFileData.php
顺便说一句,我只是在MacOS X(Mountain Lion)上用一个自编PHP5.4实例运行它
fixtures数据加载在我的Linux机器上运行得很好。看一下
您的数据设备类需要实现OrderedFixtureInterface
,以便以预设顺序加载它们
然后,您可以使用$this->addReference($ref-name',$variable)
设置引用,并使用$this->getReference($ref-name')
在另一个装置中引用这些引用
我想,为什么它在你的linux机器上能起作用,是因为修复程序是按不同的顺序加载的。我在文档中找不到一个好的例子,最后发现它能起作用。只使用文件夹位置,不指定夹具文件
doctrine:fixtures:load --fixtures=src/MyOrg/MyBundleBundle/DataFixtures/ORM --append
你也会碰到这个。我的设备在本地windows环境中工作,但在linux生产环境中失败 我的问题是区分大小写(在windows linux中经常如此) 我将数据命名为fixtures目录
Datafixtures
当脚本寻找
DataFixtures
在第二个目录名中发现大写字母F,我没有;-)
我希望这能节省一些人的时间。我在升级条令/条令捆绑包时遇到了同样的问题 这帮助了我: 在目录中自动加载装置(例如。 AppBundle\DataFixtures\ORM)已被删除。相反,请注册您的 fixture类作为服务,然后用doctrine.fixture.orm标记 资料来源:
DataFixtures