【发布时间】: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();
虽然调试 $formData 是 AppBundle\Entity\IntraDocumentCategory 的对象并且仅包含它们的字段,而不是来自表单构建器的 mainCheckbox。
【问题讨论】:
标签: symfony