Symfony2-在一个控制器操作中将POST从纯HTML表单传递到另一个控制器动作


Symfony2 - Passing POST from plain HTML form in one controllers action to another controllers action

我刚开始使用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数据,使其不会被清空?

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