forms - Symfony 检查表单字段存在于 Controller 中

标签 forms symfony

有没有办法检查 Controller 中是否存在表单字段?

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

表单类型.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',
        ))
    }

Controller .php
 if ($overviewForm->get('submit_second')->isClicked()) {
     // do something
 }

我也试过
if (
    !is_null($overviewForm->get('submit_second')) && 
    $overviewForm->get('submit_second')->isClicked()
) {

提交时我得到

错误
Child "submit_second" does not exist.

最佳答案

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

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

关于forms - Symfony 检查表单字段存在于 Controller 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841795/

相关文章:

javascript - 如何使用 JavaScript(js) 克隆和删除 html 表单?

symfony - Symfony2 命名空间的文档

symfony - 根据位置字段对 CollectionType 的 View 进行排序

php - Laravel 服务提供者说明

symfony2 表单错误

php - 重写原则延迟加载方法以将计算数据包含到对象中

javascript - 在 adobe acrobat 中计算年龄 javascript

html - 如果我将元素放在表单之外,如何将元素放在同一行

javascript - 验证多组两个单选按钮

javascript - 表单提交 jquery 和 javascript 的区别