2017-03-07 66 views
1

如果已经有回答我的问题,那么对不起,请指点正确的方向,因为我找不到任何东西。Nelmio/Alice 2.x Symfony 3,在不同套装中加载相关的灯具

假设我有两个Bundles。每个软件包都有fixures.yml文件和加载程序文件。 装载机和固定装置在彼此不相互依赖时工作正常。

但是,当我从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]); 

没有运气。

艾维时间我试图在故事夹具中使用用户对象爱丽丝试图再次将它保存到数据库。

最好的问候, 罗伯特

回答

1

我做了一些研究和交谈的人 - 它看起来就像是一个可能的错误。你可以在这里了解更多:

Nelmio/Alice 2.x Duplicated Row

此外,我想各地分享我的工作:

我想保持的东西分离和清洁。您可以将其移动到App/DataFixtures/ORM目录,而不是将所有灯具保存在一个文件夹中。然而Symfony不会在这个目录中查找灯具。您可以:在控制台命令

  • 路径添加到灯具:

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

  • 覆盖DoctrineFixturesBundle - how to do this

我希望这将如果你有类似的问题,请帮忙。