获取行动'控制器中Symfony2表单的属性

时间:2014-08-30 19:09:46

标签: forms symfony

我想在我的控制器中提取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>

1 个答案:

答案 0 :(得分:1)

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

因此,如果你想获得该动作的URL,你需要使用一些逻辑:

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