簡體   English   中英

如何使用Sonata Admin使用燈具創建用戶

[英]How to create user with fixtures with sonata admin

我使用FOSUserBundle在Symfony 4.2中啟動了我的應用程序,並制作了一個夾具文件來創建管理員。

use FOS\UserBundle\Doctrine\UserManager;
...
/** @var UserManager $userManager */
$userManager = $this->getContainer()->get('fos_user.user_manager');
/** @var User $user */
$user = $userManager->createUser();
$user
    ->setUsername('username')
    ->setEmail('email')
    ->setPlainPassword('password')
    ->setSuperAdmin(true);
$manager->persist($user);
$manager->flush();

它工作正常,但后來我決定使用SonataAdmin和ACL。

從那時起,我無法再使用管理員登錄。

但是,如果我使用bin/console fos:user:create --super-admin命令(而不是bin/console fos:user:create --super-admin命令)創建admin用戶,則可以正常登錄。

檢查數據庫,兩個用戶之間的唯一區別是salt和密碼哈希,但這是可以預期的。

就是說,誰能解釋一下我需要在Fixture文件中進行哪些更改才能創建一個正常的管理員用戶?

提前致謝。

答案在FOS\\UserBundle\\Command\\CreateUserCommand 您需要使用FOS\\UserBundle\\Util\\UserManipulator創建用戶。

use FOS\UserBundle\Util\UserManipulator;

...

/** @var UserManipulator $userManipulator */
$userManipulator = $this->getContainer()->get('fos_user.util.user_manipulator');

$user = $userManipulator->create( 'username', 'password', 'email', true, true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM