Symfony2 - 将POST从普通HTML表单中的一个控制器操作传递给另一个控制器操作

时间:2013-07-02 13:19:23

标签: php forms symfony

我刚开始使用Symfony(版本2.2.1)并遇到了一些问题。

我在IntraController-> indexAction中有一个简单的HTML表单(非Symfony),我希望它发布到AuthController-> loginAction。当我想检查loginAction以查看POST是否传递给它时,它只显示一个空对象。

我的HTML表单如下:

<form class="form-signin" action="auth/login" method="post">
  <h2 class="form-signin-heading">Admin Access</h2>
  <div class="input-prepend">
    <span class="add-on" style="padding: 7px 9px;"><i class="icon-user"></i></span>
    <input type="text" name="a_username" class="input-block-level" placeholder="Username...">
  </div>
  <div class="input-prepend">
    <span class="add-on" style="padding: 7px 9px;"><i class="icon-lock"></i></span>
    <input type="password" name="a_password" class="input-block-level" placeholder="Password...">
  </div>
  <button class="btn btn-success" name="post_auth" type="submit">Authenticate</button>
  <a class="btn" href="../">Return to Homepage</a>
</form>

这就是我在loginAction中尝试获取POST请求的方式:

public function loginAction(){
    return new Response(serialize($this->getRequest()->request->all()));
}

我还尝试使用以下方式获取单个POST项目:

return new Response(serialize($this->getRequest()->request->get('a_username')));

可悲的是我得到一个空的POST,所以我猜它在进入auth / login时会被清空。我怎样才能保留POST数据,以免被清空?

1 个答案:

答案 0 :(得分:0)

您缺少CSRF密钥。除非明确禁用CSRF保护,否则您将无法使用此类静态表单。