используйте сервисный контейнер в FOS doctrineFIxture - PullRequest
0 голосов
/ 22 марта 2019

Я использую DoctrineFixtureBundle для управления своим прибором в моем веб-приложении, и я хотел бы использовать изображения по умолчанию для инициализации носителей.

Для этого мне нужно получить доступ к служебному контейнеру, чтобы получить параметр RootDir.Вот мои данные:


use Doctrine\Bundle\FixturesBundle\Fixture;

class AppFixtures extends Fixture
{
    private $passwordEncoder;

    public function __construct(UserPasswordEncoderInterface $passwordEncoder)
    {
        $this->passwordEncoder = $passwordEncoder;
    }
    public function load(ObjectManager $manager)
    {
        $root = new User();

        //init user parameters

        $image = new Image();
        $image->setImageFile(fopen($this->container->getRootDir().'public/image/default/no-profile-pic/jpg', 'r'));
        $root->setProfilePic($image);

        $manager->persist($root);
    }
}

Я следовал этой документации , но мне возвращается следующая ошибка:

 Notice: Undefined property: App\DataFixtures\AppFixtures::$container

Я тупой или класс AppFixtureне в курсе контейнера?

...