控制器内部存在Symfony检查表单字段

use*_*736 2 forms symfony

有没有一种方法可以检查控制器内是否存在表单字段?

我有一些提交按钮,但是根据对象中的数据,将显示和创建关联的按钮。

FormType.php

$builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) {
    /** @var ObjectInfo $tab */
    $tab = $event->getData();
    $form = $event->getForm();

    if (some condition) {
        //No Value has been set or NULL
        $form->add('submit_second', 'submit', array(
            'label' => 'submit',
        ))
    }
Run Code Online (Sandbox Code Playgroud)

controller.php

 if ($overviewForm->get('submit_second')->isClicked()) {
     // do something
 }
Run Code Online (Sandbox Code Playgroud)

我也尝试过

if (
    !is_null($overviewForm->get('submit_second')) && 
    $overviewForm->get('submit_second')->isClicked()
) {
Run Code Online (Sandbox Code Playgroud)

提交后我得到

错误

Child "submit_second" does not exist.
Run Code Online (Sandbox Code Playgroud)

cap*_*vej 5

如果$form->has('field')(建议@jahller)不起作用,则可以尝试将“ 某种条件 ” 的逻辑放入实体/模型的方法中,然后在需要时调用该方法。

您应该可以在FormType和中访问模型/实体Controller