FOSUserbundle 登录表单不重定向到路由

FOSUserbundle login form not redirecting to route

我正在使用 FOSUserBundle,我想在登录后将用户重定向到主页。我正在使用注释来定义我的路线,并将我的主页路线命名为 "homepage"。但是,我在登录后收到错误 "no route found for homepage"。当我从我的 security.yml 文件中删除 default_target_pathalways_use_default_target_path 信息时(如下所示),该表单在登录后将我重定向到一个空白页面。当我将其添加回去(指定路线)时,我收到未找到路线错误。

这是我的 routing.yml

app:
resource: "@AppBundle/Controller/"
type:     annotation

fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"

这里是security.yml

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager
            require_previous_session: false
            login_path: fos_user_security_login
            check_path: fos_user_security_check
            always_use_default_target_path: false
            default_target_path:            homepage //the name of my route

这是默认控制器:

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
public function indexAction(Request $request)
   {

      return $this->render('default/index.html.twig');


   }
}

我已经使用多个命令多次清除缓存,但仍然没有成功。可能是什么问题?谢谢。

尝试使用您的路线路径而不是其名称作为您的 default_target_path,
例如default_target_path: /

当然,您应该可以使用经过身份验证的用户正常浏览homepage路由。

如果有效,执行php app/console debug:router命令。
如果您没有看到路线 homepage,说明您的路线定义有误。

我猜路由名称不是 homepage,可能是因为使用 AppBundle.

时自动添加的前缀

此外,您将 always_use_default_target_path 设置为 false,请确保您的登录表单不包含 _target_path 隐藏字段。