我在 Symfony 2.8.2 上。我安装了:
"friendsofsymfony/user-bundle": "~2.0@dev",
"pugx/multi-user-bundle": "~2.0@dev"
我配置了两种类型的用户,就像在文档中一样,除了注解中的targetClass
参数UniqueEntity
,似乎不被接受。
现在我正在尝试加载固定装置,如下所示:
<?php
namespace CompanyName\Portal\AppBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use CompanyName\Common\CommonBundle\Entity\AdminUser;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function load(ObjectManager $manager)
{
$discriminator = $this->container->get('pugx_user.manager.user_discriminator');
$discriminator->setClass('CompanyName\Common\CommonBundle\Entity\AdminUser');
$userManager = $this->container->get('pugx_user_manager');
$user = new $userManager->createUser();
$user->setUsername("admin");
$user->setPlainPassword("test");
$user->setEmail('email@example.com');
$user->setFirstName('John');
$user->setSurname('Smith');
$user->setRoles(array('ROLE_ADMIN', 'ROLE_SONATA_ADMIN'));
$user->setEnabled(true);
$userManager->updateUser($user);
}
public function getOrder()
{
return 3;
}
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
}
但是当我doctrine:fixtures:load
,我得到:
[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Undefined property: PUGX\MultiUserBundle\Doctrine\UserManager::$createUser
你能给我解释一下吗?我检查了 UserManager 类,它具有 createUser 功能。