【问题标题】:Symfony: Using "action" as a form field name causes issuesSymfony:使用“action”作为表单字段名称会导致问题
【发布时间】:2015-04-21 15:15:37
【问题描述】:

我有一个包含此字段的表单类型:

        ->add('action', 'text', array(
            'required' => false,
        ))

表单类型映射到具有属性action 的实体。

问题是当我在 twig 中呈现此表单时,该字段已预先填充了表单的 HTTP 操作 URL,这显然不是我想要的。

我是否必须重命名表单字段和实体属性以避免这种冲突?

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

    我在控制器中错误地初始化了表单。我正在这样做:

        $filterForm = $this->createForm(new ActionLogFilterType(), array(
            'action' => $this->generateUrl('admin.action_logs.index'),
            'method' => 'GET',
        ));
    

    当我需要这样做时:

        $filterForm = $this->createForm(new ActionLogFilterType(), null, array(
            'action' => $this->generateUrl('admin.action_logs.index'),
            'method' => 'GET',
        ));
    

    所以事实证明我确实可以像我希望的那样使用action 作为表单字段。

    【讨论】:

      【解决方案2】:

      在 Symfony 2.3 中添加了变量方法和操作,请参阅http://symfony.com/doc/current/reference/forms/twig_reference.html。所以,是的,你必须重命名它。

      【讨论】:

      • 其实可以用action,我打错了,提供了答案。对不起。
      • 没问题,我理解您的问题是您将操作定义为表单本身的属性,而不是将其添加为表单的子项。很高兴你解决了你的问题。 :-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多