所以我有这条路线:
/**
* @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
是我通过网址传递的参数。
示例: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
,我的表单就会成功提交。
无论如何,这不是解决方案或答案,我保持原样并等待更好的解决方案。
答案 0 :(得分:0)
最后问题是由登录表单引起的。我不得不修改每个区域的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