Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在Symfony2“中加载固定装置;找不到任何要加载的固定装置“;_Php_Symfony_Doctrine_Osx Mountain Lion_Fixtures - Fatal编程技术网

Php 无法在Symfony2“中加载固定装置;找不到任何要加载的固定装置“;

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 ... 但它在尝试从先前加载的设备(错误索引)中重新使用对象时失败了: 我查看数据库,没有在任何表中插入任何内容。如果我尝试只加载第一个夹具

我拼命地想把数据加载到数据库中。 调用global cli load函数时,一开始没有什么不好的地方:

> 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