设置隐藏在 FOS UserBundle 中的密码
Set password hidden in FOS UserBundle
我想将注册表中的密码字段设置为隐藏,因为我在第一步注册时不需要密码。该字段现在没有显示,因为我已经覆盖了表单,但我仍然无法提交表单,因为它说密码不能为空。
所以我已经试过了,但它不起作用
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname')
->add('lastname')
->add('username')
->add('plainPassword',HiddenType::class)
->add('sex')
->add('email')
->add('city')
->add('zip_code')
->add('age');
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class'=>'AppBundle\Entity\User'
]);
}
public function getBlockPrefix()
{
return 'app_bundle_registration_type';
}
}
如有任何帮助,我们将不胜感激。
谢谢。
$builder
->add('password', HiddenType::class, [
'required' => false,
'validation_groups' => false
]);
您有第三个参数来提供选项,您可以使用它使其成为可选的。
要修改 NotBlank 约束,您可以覆盖 FOSUserBundle/Resources/config/validation.xml。将其复制到 MyBundle/Resources/config/validation。xml 并进行所需的更改。
不过现在在 OlivierC 的帮助下设法解决了这个问题!
所以我使用生命周期回调来持久化实体中的数据。
http://symfony.com/doc/current/doctrine/lifecycle_callbacks.html
实体:
/**
* @ORM\Entity
* @ORM\HasLifecycleCallbacks()
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* @ORM\PrePersist()
*/
public function setPassword($password)
{
$this->password = 'abcdef';
}}
现在它不再显示为空白,并且要使用密码注册,我需要更新此字段。
我想将注册表中的密码字段设置为隐藏,因为我在第一步注册时不需要密码。该字段现在没有显示,因为我已经覆盖了表单,但我仍然无法提交表单,因为它说密码不能为空。
所以我已经试过了,但它不起作用
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname')
->add('lastname')
->add('username')
->add('plainPassword',HiddenType::class)
->add('sex')
->add('email')
->add('city')
->add('zip_code')
->add('age');
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class'=>'AppBundle\Entity\User'
]);
}
public function getBlockPrefix()
{
return 'app_bundle_registration_type';
}
}
如有任何帮助,我们将不胜感激。
谢谢。
$builder
->add('password', HiddenType::class, [
'required' => false,
'validation_groups' => false
]);
您有第三个参数来提供选项,您可以使用它使其成为可选的。
要修改 NotBlank 约束,您可以覆盖 FOSUserBundle/Resources/config/validation.xml。将其复制到 MyBundle/Resources/config/validation。xml 并进行所需的更改。
不过现在在 OlivierC 的帮助下设法解决了这个问题!
所以我使用生命周期回调来持久化实体中的数据。
http://symfony.com/doc/current/doctrine/lifecycle_callbacks.html
实体:
/**
* @ORM\Entity
* @ORM\HasLifecycleCallbacks()
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* @ORM\PrePersist()
*/
public function setPassword($password)
{
$this->password = 'abcdef';
}}
现在它不再显示为空白,并且要使用密码注册,我需要更新此字段。