2013-07-18 2 views
0

mypage/register 또는 FOSUserBudnle이 만든 다른 페이지에 액세스 할 때마다 등록 페이지 대신 기본 컨트롤러 mypage/으로 리디렉션됩니다. FOSUserBundle 경로가 다시 연결되지 않음 - 기본 컨트롤러로 리디렉션 됨

이러한 내 라우팅 파일입니다

(app\config\routing.yml) 

my_website: 
resource: "@MyWebsiteBundle/Resources/config/routing.yml" 
prefix: /

fos_user_security: 
    resource: "@FOSUserBundle/Resources/config/routing/security.xml" 

fos_user_profile: 
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml" 
    prefix: /profile 

fos_user_register: 
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml" 
    prefix: /register 

fos_user_resetting: 
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" 
    prefix: /resetting 

fos_user_change_password: 
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml" 
    prefix: /{_locale}/profile 

그리고 다른 하나 (자료 \ 설정 \ routing.yml) 또한

mywebsite_first: 
    pattern: /{_locale}/ 
    defaults: { _controller: MyWebsiteBundle:Default:index } 

mywebsite_calendar: 
    pattern: /{_locale}/calendar 
    defaults: { _controller: MyWebsiteBundle:Calendar:index } 

mywebsite_home: 
    pattern: /{_locale}/home 
    defaults: { _controller: MyWebsiteBundle:Home:index } 

mywebsite_messages: 
    pattern: /{_locale}/messages 
    defaults: { _controller: MyWebsiteBundle:Messages:index } 

- 내 security.yml 파일

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_provider: form.csrf_provider 
      logout:  true 
      anonymous: true 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 

내가 뭘 잘못하고 있니?

+0

경로에서'{_locale} '을 사용할 때는 요구 사항 (@ Rpg600의 대답 참조)과 기본값도 제공해야합니다. –

답변

0

Symfony 라우터는 웹 사이트 경로의 _locale 매개 변수와 일치하므로 작동하지 않습니다. Symfony 라우터는 발견 된 첫 번째 일치하는 경로를 항상 선택합니다.

mywebsite_first: 
    pattern: /{_locale}/ 
    defaults: { _controller: MyWebsiteBundle:Default:index } 
    requirements: 
    _locale: en|fr|de 

을하거나 FOSUser의 경로 후 웹 사이트의 경로를 배치 :

당신은 경로 요구 사항을 추가해야합니다.

관련 문제