Я использую DoctrineFixturesBundle. Согласно документации, любой класс, расширяющий Fixture
, будет автоматически подключен вверх, чтобы консоль знала, как с этим справиться. Однако, несмотря на то, что мой класс фикстур расширяется Fixture
(код ниже), я продолжаю получать следующую ошибку:
Не удалось найти службы фикстуры для загрузки.
Если я попытаюсь подключить службу вручную в моем services.yml
файле с помощью:
services:
AppBundle\DataFixtures\:
resource: '../../src/AppBundle/DataFixtures/'
tags: ['doctrine.fixture.orm']
Вместо этого я получаю:
В строке 168 FileLoader.php:
Файл "../../src/AppBundle/DataFixtures" не существует (в: / path / to / project / app / config) в /path/to/project/app/config/services.yml (который является импортируется из "/path/to/project/app/config/config.yml").
В строке 71 FileLocator.php:
Файл "../../src/AppBundle/DataFixtures" не существует (в: / path / to / project / app / config).
Путь к моим фикстурам данных - /path/to/project/src/DataFixtures
. Фактический файл класса (AppFixtures.php
):
namespace AppBundle\DataFixtures;
use AppBundle\Entity\Category;
use AppBundle\Entity\Product;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
class AppFixtures extends Fixture
{
public function load(ObjectManager $em)
{
$category = new Category();
$category->setName("Test Category")
->setSlug()
->setDescription("This is only for test purposes");
$fabricProduct = new Product();
$fabricProduct->setName("Test OldProduct")
->setCanonicalPrice(2.45)
->setHasSale(false)
->setCategory($category)
->setSlug()
->setNumberInStock(45.25);
$em->persist($category);
$em->persist($fabricProduct);
$em->flush();
}
}
Чтобы заранее ответить на очевидные вопросы, да, пакет зарегистрирован правильно. И мой services.yml
файл имеет автоматическое подключение по умолчанию:
services:
# default configuration for services in *this* file
_defaults:
# automatically injects dependencies in your services
autowire: true
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: true
# this means you cannot fetch services directly from the container via $container->get()
# if you need to do this, you can override this setting on individual services
public: false
Есть идеи о том, что я делаю неправильно? Согласно всей документации, которую я нашел, это должно работать.