Symfony2表单输入数字范围

时间:2014-05-12 22:40:21

标签: php forms symfony doctrine

使用Symfony2表单构建器的最佳方法是什么,用户可以输入从第一个到最后一个的2个数字。例如,用户想要输入2到5的机架号,控制器必须输入2,3,4和5的数据库机架号。如果输入5-9,则数据库输入5,6,7 ,8,9等等。

然而,数据库只有一个列' Rack'因此,在识别每个字段时,我不知道要使用哪个名称......

会是这样的吗?

$builder
        ->add('rackno', 'integer', array(
                'label' => 'Rack: '
            )) // first rack #
        ->add('rackno', 'integer', array(
                'label' => 'To: '
            )) // last rack #
        ->add('Submit', 'submit');

1 个答案:

答案 0 :(得分:0)

你可以添加

'mapped' => false 

并将其姓名设为rackno_fromrackno_to 对于表单中的两个字段,所以它们的值不会分配给$object->rackno字段

然后在提交表单后,您可以使用值执行任何操作,并在保存对象后执行所需的插入操作。所以你会:

$builder
        ->add('rackno_from', 'integer', array(
                'label' => 'Rack: ',
                'mapped' => false
            )) // first rack #
        ->add('rackno_to', 'integer', array(
                'label' => 'To: ',
                'mapped' => false
            )) // last rack #
        ->add('Submit', 'submit');

然后提交表格后

if($form->isValid())
{

// get the rackno_from and rackno_to from form and do what you need with those values

}