Validate a dynamically populated choice field

白昼怎懂夜的黑 提交于 2019-12-05 07:59:44

I had the same issue like yours: updating a field via javascript, but didn't pass the validation. On PRE_SUBMIT event, read the value that you added with javascript, query and get the object with that ID, and update the field choices.

$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
    $data = $event->getData();
    $form = $event->getForm();
    $pageId = $data['page_id'];

    $page = $this->myManager->getPage($pageId);
    $options = array($page->getId() => $page->getTitle());

    $form->add('page_id', 'choice', array(
        'label'         => 'Select page',
        'choices'       => $options,
        'required'      => true,
        'placeholder'   => 'Select page'
    ));

    $form->getData()->setPageId($pageId);
});
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!