symfony - 由 make:registration-form 制作的表单中的 Symfony 4.3 错误
问题描述
以这种方式创建注册表后:https ://symfony.com/doc/current/doctrine/registration_form.html 创建帐户时出现问题。在以前的版本中,我以相同的方式进行操作,并且没有任何问题。我不确定这是一个错误还是我以错误的方式做某事。表格仍然无效。在 Profiler->Validation 中我可以看到一个调用:data.password 这个值不应该为空。
我试图从表单构建器中删除数据参数并删除选项解析器然后工作,但我知道这不是一个正确的解决方案。
从 RegistrationFormType.php 中删除:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => User::class,
]);
}
在 RegistrationController.php 中更改:
public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder, GuardAuthenticatorHandler $guardHandler, AppAuthenticator $authenticator): Response
{
$user = new User();
$form = $this->createForm(RegistrationFormType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$user->setEmail($form->get('email')->getData());
$user->setPassword(
$passwordEncoder->encodePassword(
$user,
$form->get('plainPassword')->getData()
)
);
你能帮我正确解决这个问题吗?
解决方案
Symfony4寄存器形式错误
将所有单词:plainPassword更改为类和树枝中的密码:
src/Form/RegistrationFormType.php
templates/register/register.html.twig
src/ControllerRegistrationController.php
并从 (src/Form/RegistrationFormType.php) 更改为 true 或删除:
'mapped' => true,
// or hide
// 'mapped' => false,
或者将 plainPassword 变量添加到 src/Entity/User.php 并执行
# Update User class add plainPassword
php bin/console make:entity
> User
...
# in sqlite3
php bin/console doctrine:schema:update --force
# or in mysql
php bin/console make:migration
php bin/console doctrine:migrations:migrate
Ps php bin/console make:user 不创建 plainPassword (方法和变量),但创建 register-form 和模板有 'plainPassword' 变量(愚蠢的 symfony 文档)。
问候莱克
推荐阅读
- django - 如何在端口 6379 上启动 Redis 服务器
- delphi - 在子类中添加重载
- python - 为什么我需要单击两次才能退出我的 python 程序?
- blender - 如何在搅拌机中将立方体的原点设置为其顶点?
- python - 读取数字数据文件并同时分配给每个项目
- groovy - XmlSlurper 不返回值
- android - D8 编译到 API 级别 21 及以上时不支持 main-dex 输入和输出
- sql - 使用 FOR JSON PATH 时解析 NVARCHAR 列内的 JSON 文本
- javascript - 单击单个元素时多选js引发也checkall
- ckeditor - CKEditor 4 如何禁用图像上传弹出窗口?