Symfony2: Как сохранить нового пользователя в интерфейсе администратора с помощью FOSUserBundle?


Я создаю представление администратора, в котором я могу перечислять пользователей и создавать пользователей. Я создал класс User, но я не уверен, как я могу его сохранить.

Нужно ли мне вручную создавать форму, а затем сохранять ее?

Я сохранил с помощью обычного сохранения, но затем выполняется проверка.

Я хочу знать, нужно ли мне вручную кодировать пароль и т.д. или FOSUserBundle сделает это за меня.

Author: nifr, 2014-02-26

1 answers

Я предполагаю, что вы не планируете использовать...

  • значение по умолчанию /register маршрут / метод для новых пользователей
  • команда консоли : app/console fos:user:create testuser [email protected] p@ssword

... поскольку вы говорите о административном (веб-) интерфейсе.


Ответ:

В классе ContainerAware (т.Е. контроллеры)...

... вы можете повторно использовать регистрационную форму по умолчанию и отключить проверку:

$user = new User();
$this->createForm(
    $this->get('fos_user.registration.form.type'),
    $user,
    array(
       'validation_groups' => false,
    )
);

Вот как вручную создайте новый User и сохраните его в базе данных:

$om      = $this->container->get('doctrine.orm.entity_manager');     
$manager = $this->container->get('fos_user.user_manager');

$user = $manager->createUser();

$user
    ->setUsername('nifr')
    ->setEmail('[email protected]')
    ->setPlainPassword('Insecure123')
    ->setEnabled(true)
;

$om->persist($user);
$om->flush();
 3
Author: nifr, 2014-02-26 05:08:36