【问题标题】:How to retrieve form field that is configured "mapped" => false in Symfony Form?如何检索在 Symfony 表单中配置为“映射”=> false 的表单字段?
【发布时间】:2018-08-21 16:37:52
【问题描述】:

如何检索配置为 "mapped" => false 并且不是 Symfony 表单中表单实体的一部分的表单字段?

表单提交后表单对象不包含配置为"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();

虽然调试 $formDataAppBundle\Entity\IntraDocumentCategory 的对象并且仅包含它们的字段,而不是来自表单构建器的 mainCheckbox

【问题讨论】:

    标签: symfony


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多