【问题标题】:Nelmio/Alice 2.x Symfony 3 , Loading Related Fixtures in Different BundlesNelmio/Alice 2.x Symfony 3,在不同的捆绑包中加载相关的装置
【发布时间】:2017-03-07 01:06:42
【问题描述】:

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

假设我有两个捆绑包。每个包都有 fixures.yml 文件和 loader 文件。 当加载器和固定装置不相互依赖时,它们可以正常工作。

但是,当我从fixtureB 引用fixtureA 时,我在数据库中得到了重复的记录。

例如:

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]);

运气不好。

每次我尝试在故事装置中使用用户对象时,爱丽丝会再次尝试将其保存到数据库中。

最好的问候, 罗伯特

【问题讨论】:

    标签: symfony fixtures nelmio-alice alice-fixtures


    【解决方案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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多