【发布时间】:2019-01-12 21:21:24
【问题描述】:
我正在使用 Symfony 4.1,并且遇到了表单验证问题。 所以我不明白是否可以避免验证所有实体字段。例如我有一个用户实体,看起来像这样:
/**
* @ORM\Entity
* @UniqueEntity(fields="email", message="Email already taken")
* @UniqueEntity(fields="username", message="Username already taken")
*/
class User implements UserInterface
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\NotBlank()
* @Assert\Email()
*/
private $email;
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\NotBlank()
* @Assert\Length(
* min = 2,
* max = 50,
* minMessage = "Your username must be at least {{ limit }} characters long",
* maxMessage = "Your username cannot be longer than {{ limit }} characters"
* )
*/
private $username;
可以注册,但不能登录。 我的登录表单类型:
class UserLoginType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class)
->add('password', PasswordType::class)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => User::class,
));
}
}
登录页面只有用户名和密码字段。但是当我尝试插入数据时,symfony 显示一个电子邮件错误。
【问题讨论】: