Как получить поле формы, которое настроено "mapped" => false и НЕ является частью формы ENTITY в Symfony Form?
После отправки формы объект формы не содержит поля, настроенного как "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 из конструктора форм.




Вы можете получить доступ к полям формы с помощью следующего синтаксиса:
$form->get('mainCheckbox')->getData();
Если поле присутствует, вы должны получить значение этого поля.