使用FOS准则修正案中的服务容器

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

我正在使用DoctrineFixtureBundle来管理我的Web应用程序中的设备,我想使用默认图像来初始化媒体。

为此,我需要访问服务容器以获取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);
    }
}

我遵循了此documentation,但它返回了以下错误:

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

我是不是很傻,还是AppFixture类不知道该容器?

php symfony fixtures
1个回答
0
投票

访问完整的容器不再是解决方案。您需要使用DI来更改密码编码器的类定义,而不是使用DI]

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