Nelmio / Alice 2.x Symfony 3,在不同的捆绑中加载相关的装置

时间:2017-03-07 01:06:43

标签: symfony fixtures nelmio-alice alice-fixtures

如果已经回答了我的问题,那么抱歉,请指出我正确的方向,因为我找不到任何东西。

我们说我有两个捆绑包。每个bundle都有fixures.yml文件和loader文件。 装载机和固定装置在不相互依赖时工作正常。

然而,当我从fixtureB引用fixtureA时,我在数据库中获得了重复记录。

E.g:

user_{1..10}:
email (unique): '<firstName()>+<randomNumber()>@gmail.com'
plainPassword: 'secret' 

story_{1..10}:
    user: "@user_<current()>"
    title: '<word>'

当它们在分开的文件中时 - 重复的行。当它们在同一个文件中时,一切正常。

为什么要加载两次?

我甚至试过这个:

$objects = Fixtures::load(__DIR__ . '/fixtures.yml', $manager, ['persist_once'=>true]);

没有运气。

Evey时间我试图在故事装置中使用用户对象alice试图再次将其保存到db中。

最诚挚的问候, 罗伯特

1 个答案:

答案 0 :(得分:1)

我做了一些研究并与人们交谈 - 看起来它可能是一个错误。您可以在这里了解更多信息:

Nelmio/Alice 2.x Duplicated Row

我也想分享我的工作:

我想把事情分开并保持干净。您可以将其移动到App / DataFixtures / ORM目录,而不是将所有灯具保存在一个文件夹中。但是,Symfony不会在此目录中查找fixture。你可以:

  • 在控制台命令中添加固定装置的路径:

    doctrine:fixtures:load --fixtures=/var/www/story/app/DataFixtures/ORM
    
  • 为上述解决方案创建别名

  • 覆盖DoctrineFixturesBundle - how to do this

如果你有类似的问题,我希望这会有所帮助。