【发布时间】:2014-02-26 04:07:16
【问题描述】:
我正在创建管理视图,我可以在其中列出用户并创建用户。
我已经创建了 User 类,但我不知道如何坚持下去。
我需要手动创建表单然后持久化吗?
我已经使用正常保存进行了保存,但随后执行了验证。
我想知道我是否需要手动对密码等进行编码,或者FOSUserBundle 会为我做这些。
【问题讨论】:
标签: php symfony fosuserbundle
我正在创建管理视图,我可以在其中列出用户并创建用户。
我已经创建了 User 类,但我不知道如何坚持下去。
我需要手动创建表单然后持久化吗?
我已经使用正常保存进行了保存,但随后执行了验证。
我想知道我是否需要手动对密码等进行编码,或者FOSUserBundle 会为我做这些。
【问题讨论】:
标签: php symfony fosuserbundle
我假设您不打算使用...
/registerroute / method
app/console fos:user:create testuser test@example.com 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('dont@spam.me')
->setPlainPassword('Insecure123')
->setEnabled(true)
;
$om->persist($user);
$om->flush();
【讨论】: