使用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');
你可以添加
'mapped' => false
,并将其名称设置为rackno_from
和rackno_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
}