가장 쉬운 solution은 Symfony \ Component \ DependencyInjection \ ContainerAware를 확장하는 것입니다. 이미 다른 클래스를 확장하는 경우
<?php
namespace SomeCompany\SomeBundle\DataFixtures\MongoDB;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\DependencyInjection\ContainerInterface;
use SomeCompany\SomeBundle\Document\User;
class LoadUsers extends ContainerAware implements FixtureInterface
{
/**
* {@inheritDoc}
*/
public function load(ObjectManager $manager)
{
$userManager = $this->container->get('fos_user.user_manager');
$user = $userManager->createUser();
$user->setUsername('myuser');
$user->setEmail('[email protected]');
$user->setPlainPassword('mypass');
$user->addRole('ROLE_USER');
$user->setEnabled(true);
$userManager->updateUser($user);
}
}
, 당신은 코드의 몇 가지 여분의 줄을 소요 ContainerAwareInterface를 구현해야합니다.
[documentation] (http://symfony.com/doc/master/bundles/DoctrineFixturesBundle/index.html#using-the-container-in-the-futuretures)까지 읽지 않았습니다. –
@ m2mdas 당신이 내게있어, 덕분에 – ChocoDeveloper