Symfony4:从捆绑包加载灯具

问题描述 投票:0回答:1

我正在尝试将捆绑包中的固定装置添加到我的应用程序中的固定装置中。这些装置位于我的包中

lib/MyCompany/MyBundle/Fixtures
下的子目录中。

示例:

// MyCompany/MyBundle/Fixtures/SpecialFixtures.php
<?php

namespace MyCompany\MyBundle\Fixtures;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;

class SpecialFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {
    }
}

然后我在应用程序中使用这个固定装置作为另一个固定装置的依赖项

// src/Fixtures/DependentFixtures.php
<?php

namespace App\Fixtures;

use MyCompany\MyBundle\Fixtures\SpecialFixtures;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\DataFixtures\DependentFixtureInterface;

class DependentFixtures extends Fixture implements DependentFixtureInterface
{
    public function load(ObjectManager $manager)
    {
    }

    public function getDependencies()
    {
        return array(
            SpecialFixtures::class,
        );
    }
}

我使用该命令的天真方法并期望它像docs

中所写的那样工作

./bin/console doctrine:fixtures:load

失败并显示

Fixture "MyCompany\MyBundle\Fixtures\SpecialFixtures" was declared as a dependency, but it should be added in fixture loader first.

尝试在扩展的加载函数中添加fixtures目录也不起作用,因为在加载包的扩展类期间未定义服务

doctrine.fixtures.loader
。虽然此服务显示在
./bin/console debug:container
的服务列表中。

我如何知道灯具加载器要查找在捆绑包内管理的其他灯具?

任何帮助将不胜感激。

干杯

备注:第一次评论后进行了大量编辑。

symfony doctrine bundle fixtures
1个回答
0
投票

在将多个数据装置从项目存储库移动到可共享包后,我遇到了同样的问题。

我的问题是依赖项缺少“use”声明声明。由于它们不再位于同一名称空间中,因此需要“use”语句。 DoctrineFixturesBundle给出的错误信息不是很清楚。

© www.soinside.com 2019 - 2024. All rights reserved.