0

我正在使用 FOSUserBundle,我想在登录后将用户重定向到主页。我正在使用注释来定义我的路线,并且我已将主页路线命名为“主页”。但是,我在登录后收到错误“找不到主页的路由”。当我从文件中删除default_target_pathalways_use_default_target_path信息时security.yml(如下所示),登录后表单会将我重定向到空白页面。当我将其添加回来(指定路线)时,我得到没有找到路线的错误。

这是我的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');


   }
}

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

4

1 回答 1

1

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

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

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

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

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

于 2016-03-09T16:50:30.633 回答