访问Symfony2 Controller中未映射的字段

时间:2013-06-13 09:35:51

标签: forms symfony

我正在创建带有未映射字段的表单,如form documentation中所述。

但是当我想在控制器或类似设备中访问它时,目前我正在使用POST请求数组并从那里出来:

$postData = $this->getRequest()->request->get('my_form_name');
$unmappedField = $postData['unmapped_field']

我忍不住想到这不是最好的方法,我在官方文档上找不到任何东西。

有没有比这更好的方法?

2 个答案:

答案 0 :(得分:61)

您可以在表单

中访问未映射的字段
$unmappedField = $form['unmapped_field']->getData();

答案 1 :(得分:14)

取自symfony doc sf 2.5(也用sf 2.3测试):

表单类型:

use Symfony\Component\Form\FormBuilderInterface;

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('task')
        ->add('dueDate', null, array('mapped' => false))


  ->add('save', 'submit');
}

控制器:

$form->get('dueDate')->getData();
$form->get('dueDate')->setData(new \DateTime());

http://symfony.com/doc/current/book/forms.html#creating-form-classes(向下滚动一下)