Symfony2 - 根据页面路径,表单提交不起作用

Symfony2 - Form submit does not work depending on a route of page

所以我有这条路线:

/**
 * @Route("/", name="homepage")
 *
 * @param Request $request
 *
 * @return Response
 */
public function indexAction(Request $request)
{
    // ...

此页面中有一个正确的表格,前段时间还可以使用。

{{ form_start(company_sign_up_form, {'action': path('homepage', { 'sign_up': 'company' }) }) }}

这里sign_up是我传给url的一个参数。

示例:http://localhost/?sign_up=company

当我提交表单时,我被重定向到没有此 sign_up 参数的页面,并且 $form->isSubmitted()$form->isValid() 都给我 false.

但是当我将路由从 @Route("/", name="homepage") 更改为 @Route("/something", name="homepage") 时,提交工作正常。

唯一可能发生冲突的相似路由是动态路由:

/**
 * @Route("/{page}", name="public", requirements={"page": "about|programs|contacts"})
 *
 * @param Request $request
 * @param $page
 *
 * @return Response
 */
public function publicAction(Request $request, $page)
{

我尝试将这条路线更改为其他路线,但它并没有解决我的问题。

有谁知道这个问题,为什么我的表单没有按照当前路径正确提交?

更新

所以我通过修改我的表单所在和引用的路径来解决这个问题。

/**
 * @Route("/{page}", name="homepage", defaults={"page": ""}, requirements={"page": "|home"})
 *
 * @param Request $request
 *
 * @return Response
 */
public function indexAction(Request $request)
{

所以在这种情况下,我可以通过 http://localhost/http://localhost/home 访问我的主页,所以如果我将表单操作设置为 /home,我的表单将成功提交。

无论如何,这不是解决方案或答案,我保持原样,等待更好的解决方案。

最终问题出在登录表单上。我不得不修改每个区域的 check_path,登录逻辑不会像其他表单一样在同一页面上执行。

main:
    pattern:    ^
    anonymous:  ~
    provider:   main
    context:    primary_auth
    form_login:
        login_path:             /
        check_path:             /login_check
        default_target_path:    /authorization
    logout:
        path: /logout
        target: homepage
    remember_me:
        secret: '%secret%'
        lifetime: 31536000