【问题标题】:Get 'action' property of a Symfony2 form in controller在控制器中获取 Symfony2 表单的“动作”属性
【发布时间】:2014-08-30 19:09:46
【问题描述】:

我想在我的控制器中提取 Symfony2 表单的动作。 $form->getConfig()->getAction() 只返回一个空字符串。

还有其他方法吗?

public function fooAction(Request $request)
{
    $bar = new BarEntity();
    $form = $this->createForm(new BarType(), $bar);

    $form->handleRequest($request);

    $action = ''; // how to get the action?

    return array('form' => $form->createView());
 }

示例:

 <form action="this/is/the/value/im/interested/in" enctype="...">...</form>

【问题讨论】:

  • @sebbo 对于我不清楚的问题,我深表歉意。我实际上对呈现的&lt;form&gt;&lt;/form&gt;action 值感兴趣
  • $form->getConfig()->getAction();如果您设置了操作,它将起作用。默认情况下没有任何操作。您在模板中构建它,或者在构建表单时设置它。

标签: forms symfony


【解决方案1】:

Action 为空,因为如果在表单构建器中没有明确指定操作,Symfony 表单构建器使用 HTML 表单默认行为。当操作为空或未设置时,提交时的默认 HTML 表单行为是将表单发送到当前 URL。

因此,如果您想获取该操作的 URL,则需要使用一些逻辑:

$action = $form->getConfig()->getAction();
if(empty($action) === true) {
     $action = $this->get('request')->getRequestUri();
}

【讨论】:

    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多