如何强制 symfony 形式仅显示和接受正整数?

Amb*_*mbu 3 constraints symfony-forms twig symfony4

我有以下代码:

use Symfony\Component\Validator\Constraints\Positive;

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('x', IntegerType::class, [
            'mapped' => false,
            'required' => false,
            'constraints' => [new Positive()]
            ])
}
Run Code Online (Sandbox Code Playgroud)

树枝形式如下:

{{ form_widget(form.x, { 'attr': {'class': 'form-control'} }) }}
Run Code Online (Sandbox Code Playgroud)

但是,呈现的表单 (HTML) 仍然允许用户输入带减号的值。如何更改它,以便呈现的形式禁止减号并在箭头输入上停止于 1?

β.ε*_*.βε 6

您必须为此添加HTML5min属性,您可以在表单字段的定义中添加该属性:

use Symfony\Component\Validator\Constraints\Positive;

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('x', IntegerType::class, [
            'mapped' => false,
            'required' => false,
            'constraints' => [new Positive()],
            'attr' => [
                'min' => 1
            ]
        ])
}
Run Code Online (Sandbox Code Playgroud)