Symfony 表单和不同的验证组
Symfony Form and different validation groups
我有一个名为 UserType 的表单,它在我的控制器中用于创建新用户:
$newUser = new User();
$form = $this->createForm(UserType::class, $newUser);
$form->submit($request->request->all());
现在,我还想有一个使用表单的更新路径。表单可能是不同的,因为某些属性在创建后无法更改。因此,我也想在实体中进行不同的验证。如何通过控制器中的表单传递不同的验证组?
使用选项解析器您可以将组名验证作为选项传递并在 UserType 中获取它
$newUser = new User();
$form = $this->createForm(UserType::class, $newUser, ['validation'=>'your_validation_group_name']);
$form->submit($request->request->all());
并在 UserType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, [
'validation'=> $options['validation'] //contains your_validation_group_name
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'validation' => ''
));
}
我有一个名为 UserType 的表单,它在我的控制器中用于创建新用户:
$newUser = new User();
$form = $this->createForm(UserType::class, $newUser);
$form->submit($request->request->all());
现在,我还想有一个使用表单的更新路径。表单可能是不同的,因为某些属性在创建后无法更改。因此,我也想在实体中进行不同的验证。如何通过控制器中的表单传递不同的验证组?
使用选项解析器您可以将组名验证作为选项传递并在 UserType 中获取它
$newUser = new User();
$form = $this->createForm(UserType::class, $newUser, ['validation'=>'your_validation_group_name']);
$form->submit($request->request->all());
并在 UserType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, [
'validation'=> $options['validation'] //contains your_validation_group_name
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'validation' => ''
));
}