Tôi đang cố gắng tải một số người dùng vào cơ sở dữ liệu của mình để thử nghiệm bằng DoctrineFixturesBundle. Tôi đã thực hiện rất nhiều tìm kiếm ở đây trên StackOverflow và đã tìm thấy rất nhiều về các vấn đề khác. Dường như không có câu trả lời của tôi. Tôi đang tải người dùng của mình bằng cách sử dụng Trình quản lý người dùng FOS. Dưới đây là lớp cố định của tôi.FOSUserBundle Không đặt muối trong DoctrineFixtures
namespace Kandidly\UserBundle\DataFixtures;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class LoadUserData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
{
private $container;
/**
* {@inheritDoc}
*/
public function load(ObjectManager $manager)
{
$userManager = $this->container->get('fos_user.user_manager');
$user1 = $userManager->createUser();
$user1->setFirstName('Admin');
$user1->setLastName('User');
$user1->setCity('Somewhere');
$user1->setState('TN');
$user1->setUsername('admin');
$user1->setEmail('[email protected]');
$user1->setPlainPassword('admin');
$user1->setEnabled(true);
$user1->setRoles(
array(
'ROLE_ADMIN'
)
);
$user2 = $userManager->createUser();
$user2->setFirstName('Normal');
$user2->setLastName('User');
$user2->setCity('Another');
$user2->setState('CA');
$user2->setUsername('user');
$user2->setEmail('use[email protected]');
$user2->setPlainPassword('user');
$user2->setEnabled(true);
$user2->setRoles(
array(
'ROLE_USER'
)
);
$userManager->updateUser($user1);
$userManager->updateUser($user2);
$this->addReference('admin-user', $user1);
}
/**
* Get the order of this fixture
*
* @return integer
*/
function getOrder()
{
return 1;
}
/**
* Sets the Container.
*
* @param ContainerInterface|null $container A ContainerInterface instance or null
*
* @api
*/
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
}
Tuy nhiên, khi tôi chạy các đồ đạc, tôi gặp lỗi nói rằng muối chưa được đặt. Có ai giúp được không?
Muối được đặt trong hàm tạo của phần tử trừu tượng 'FOS \ UserBundle \ Model \ User'. Bạn có đang mở rộng lớp đó nhưng không gọi hàm tạo của nó trong lớp bê tông của bạn không? – Ryan