2013-01-17 2 views
0

오류 경우 액세스하십시오 /login입니다 찾을번역 symfony2 라우팅 오류

어떤 경로

내가 /en/login에 액세스하려고

로그인 나를 리디렉션 "GET/로그인이 없다"하지만 난 얻을 같은 오류. 내 routing.yml에서

내가 가지고 : 당신이 두 개의 별도의 문제를 가지고있는 것처럼

login: 
    pattern: /{_locale}/login 
    defaults: { _controller: miomioBundle:Security:login} 
    requirements: 
     _locale: es|en|de 
    options: 
     expose: true 
+0

캐시를 지우셨습니까? – seferov

+0

문제는 security.yml ^/login입니다. – faisbu

답변

0

이 소리.

  1. 경로/로그인이 존재하지 않습니다./es/login,/en/login 및/de/login보다 세 경로를 설정했으나/login이 아닌 것은 자신의 경로로 설정했습니다.

  2. 위의 세 경로가 인증되지 않은 사용자가 액세스 할 수없는 일부 액세스 제어 설정이 있어야합니다. 따라서 인증을 위해/login으로 리디렉션되고 있지만 ... 경로 1에서 언급했듯이 있다.

포인트 1을 해결하려면 실제로 로그인 양식을 처리하는 경로를 설정해야합니다. 단계 접근 방식에 의해 단계 심포니 문서를 참조하십시오 :

access_control: 
    - { path: ^/es/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/en/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/de/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
: http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form

포인트 2를 들어 사용자가 로그인하지 않고 로그인 페이지에 액세스 할 수 있도록 당신의 security.yml 파일의 설정에 약간의 액세스 제어를해야합니다

이미 무한 루프에 충돌 할 아래 그렇지 않으면 로그인 페이지와 같은 액세스 제어가 있어야합니다

access_control: 
     - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 

당신이 훨씬 더 제공 될 것입니다 단순한 로그인 폼 다음 만약 내가 비록 말을해야 고집하여 1 개의 로그인 양식을 사용하고 대신 레이블과 로그인 텍스트를 번역과 함께 처리하십시오. http://symfony.com/doc/master/book/translation.html

0

JMSTranslation BundleJMSI18nRoutingBundle에 대해 더 흥미로운 내용을 살펴보십시오. JMSI18nRoutingBundle을 사용하면 config.yml 파일에서 라우팅이 작동하는 방법을 지정할 수 있습니다. EN/: 예를 들어, 당신이 당신의 URL을 항상 로케일을 포함시킬 그러나 경우

jms_i18n_routing: 
    default_locale: en 
    locales: [de, en] 
    strategy: prefix_except_default 

:

당신은 당신의 URL 기본 로케일이 최대 뭔가를 설정합니다 사용/로그인 싶은 경우 로그인 또는 de/login하면 '접두사'로 stratagy 매개 변수를 변경 하시겠습니까

jms_i18n_routing: 
    default_locale: en 
    locales: [en, de] 
    strategy: prefix