如何检索已配置的表单字段"映射" => Symfony表格中的错误?

时间:2018-03-13 12:11:51

标签: symfony

如何检索配置为"mapped" => false的表单字段,而不是Symfony表单中的表单ENTITY的一部分?

表单提交后,表单对象不包含配置为"mapped" => false名为 mainCheckbox 的字段。

表单构建器:

class DocumentCategoryType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name', TextType::class, array(
                'label' => 'Podkategoria'))
            ->add('mainCheckbox', CheckboxType::class, array(
                'label'    => 'Kategoria główna',
                "mapped" => false,
            ))
            ->add('parentId', EntityType::class, array(
                'label'    => 'Kategoria główna',
                'class' => IntraDocumentCategory::class,
                'query_builder' => function (EntityRepository $er) {
                    return $er->createQueryBuilder('c')
                        ->where('c.parentId = :parent')
                        ->setParameter('parent', 0);},
                'choice_label' => 'name',
            ))
            ->add('save', SubmitType::class, array('label' => 'Dodaj'));
    }

控制器:

$documentCategory = new IntraDocumentCategory();
$form = $this->createForm(DocumentCategoryType::class, $documentCategory);
$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
    $formData = $form->getData();

虽然debuging $formDataAppBundle\Entity\IntraDocumentCategory的对象,但只包含其字段,而不包含表单构建器中的 mainCheckbox

1 个答案:

答案 0 :(得分:2)

您可以使用以下语法访问表单字段:

$form->get('mainCheckbox')->getData();

如果该字段存在,那么您应该获得该字段的值。