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



我正在使用FOSUserBundle,我想在登录后将用户重定向到主页。我正在使用注释来定义我的路线,并将我的主页路线命名为"主页"。但是,登录后出现错误"找不到主页的路由"。当我从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 AppBundleController;
use SensioBundleFrameworkExtraBundleConfigurationRoute;
use SymfonyBundleFrameworkBundleControllerController;
use SymfonyComponentHttpFoundationRequest;
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隐藏字段。

最新更新