无法在Symfony2中加载夹具“找不到要加载的夹具”

Swo*_*wop 5 php doctrine fixtures symfony osx-mountain-lion

我拼命尝试将Doctrine夹具加载到我的数据库中。当我调用全局cli load函数时,开始时看起来还不错:

> purging database
> loading [1] namespace_of_my_first_fixture_file
> loading [2] namespace_of_my_second_fixture_file
...
Run Code Online (Sandbox Code Playgroud)

但是,当尝试重新使用先前加载的灯具(错误索引)中的对象时,它在过程的中间失败:

[ErrorException]                                                                                                                                                          
Notice: Undefined index: my_object_index in /Users/Swop/project/vendor/doctrine/data-fixtures/lib/Doctrine/Common/DataFixtures/ReferenceRepository.php line 145
Run Code Online (Sandbox Code Playgroud)

我看一下数据库,什么都没插入。如果我尝试仅加载第一个灯具(似乎根据上述粘贴加载),则会出现错误:

[InvalidArgumentException]                                          
Could not find any fixtures to load in:                             

- src/MyOrg/MyBundleBundle/DataFixtures/ORM/MyFirstFixtureFileData.php
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我只是在MacOS X(Mountain Lion)上使用自编译的PHP 5.4实例运行了它。

夹具数据加载在我的Linux机器上运行良好。

lif*_*ifo 1

查看DoctrineFixturesBundle 文档

您的数据夹具类需要实现,OrderedFixtureInterface以便它们按预设顺序加载。

然后,您可以使用 设置参考并$this->addReference('ref-name', $variable)使用 来引用另一个夹具中的这些参考$this->getReference('ref-name')

我猜测为什么它似乎在你的 Linux 机器上工作是因为固定装置是以不同的顺序加载的。