使用Symfony3.4的表单验证器来限制输入框输入数字的大小。下面是一个例子:
use Symfony\Component\Validator\Constraints as Assert;
class MyFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('myNumber', IntegerType::class, [
'constraints' => [
new Assert\NotBlank(),
new Assert\Range([
'min' => 0,
'max' => 100,
'minMessage' => 'The minimum value is {{ limit }}',
'maxMessage' => 'The maximum value is {{ limit }}',
]),
],
]);
}
}
在上面的代码中,我们使用了Symfony的Range验证器来限制输入框输入数字的大小。min和max选项指定了允许的最小值和最大值。minMessage和maxMessage选项指定了验证失败时的错误消息。
在控制器中处理表单
public function myAction(Request $request)
{
$form = $this->createForm(MyFormType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// 处理表单数据
}
return $this->render('my_template.html.twig', [
'form' => $form->createView(),
]);
}
在上面的代码中,我们使用了handleRequest()方法来处理表单提交,并使用isValid()方法来验证表单数据是否有效。如果表单数据有效,则可以进行进一步处理。如果表单数据无效,则Symfony会自动显示错误消息。