如何检索配置为"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 $formData
是AppBundle\Entity\IntraDocumentCategory
的对象,但只包含其字段,而不包含表单构建器中的 mainCheckbox 。
答案 0 :(得分:2)
您可以使用以下语法访问表单字段:
$form->get('mainCheckbox')->getData();
如果该字段存在,那么您应该获得该字段的值。