在现有的Symfony 2.1应用程序中,登录被破坏。最初编写应用程序的人不再存在,所以我必须调试登录过程,找出错误发生的位置。当你尝试登录时,基本上你会被重定向到主页,但是没有登录,开始的时间不多,我知道。我检查了mcrypt
是否可用,然后我试着一步一步走。发生了一件奇怪的事情。
twig文件中包含以下行:
<form class="loginBox" action="{{ path('foobar_security_login_check', {'_locale': 'de'}) }}" method="post">
呈现为
<form method="post" action="/login/check" class="loginBox" style="display: block;" novalidate="novalidate">
看起来很像这样,对吧?这就是我想知道的,直到我想知道,loginform调用哪个控制器。
php app/console router:debug foobar_security_login_check
[InvalidArgumentException]
The route "foobar_security_login_check" does not exist.
router:debug [name]
那怎么可能呢?我怎样才能找到它所连接的控制器?
当我检查routing.yml
文件时,有一个foobar_security_login_check
条目:
foobar_security_login_check:
pattern: /login/check
这解释了为什么路线可以在TWIG中呈现。它仍然没有告诉我发送POST请求的位置。
答案 0 :(得分:0)
我不知道为什么你不能调试路线。
但是,我可以回答你原来的问题:叫什么控制器。没有控制器被调用。它由安全认证监听器接收,这是一个监听kernel.request
事件的事件监听器:https://github.com/symfony/Security/blob/master/Http/Firewall/AbstractAuthenticationListener.php#L179