Symfony2: невозможно найти контроллер для пути "/ en / login_check" - PullRequest
1 голос
/ 11 февраля 2012

Я работаю над созданием формы входа в Symfony, следуя примеру, приведенному в главе Безопасность книги Symfony.

Я создал необходимые конфигурации в security.yml, routing.yml, а также реализовал мой шаблон ControllerAction и Twig.

Вот как выглядят файлы безопасности и маршрутизации: -

security.yml

Firewalls:
    # defaut login area for standard users
    main:
        switch_user:        true
        context:            user
        pattern:            .*
        form_login:
            provider:       fos_userbundle
            login_path:     /login
            use_forward:    false
            check_path:     /login_check
            failure_path:   null
        logout:             true
        anonymous:          true

routing.yml

login:
    pattern:   /{_locale}/login
    defaults:  { _controller: XYZSiteBundle:SiteUser:login }
login_check:
    pattern:   /{_locale}/login_check

Как видите, login_path и check_path находятся под одним и тем же брандмауэром. Я все еще получаю следующую ошибку: -

Невозможно найти контроллер для пути "/ en / login_check". Может быть, вы забыли добавить соответствующий маршрут в конфигурацию маршрутизации?

Что я делаю неправильно?

Ответы [ 3 ]

2 голосов
/ 12 февраля 2012

Ваш параметр конфигурации почти в порядке. Ваша проблема связана с маршрутизацией. Вы можете решить эту проблему, просто изменив свой routing.yaml на

В роутинге. ЯМЛ

Логин:
pattern: / login по умолчанию: {_controller: XYZSiteBundle: SiteUser: login}

login_check:

pattern: / login_check

потому что шаблон \ login и \ logincheck должен совпадать с шаблоном security.yaml. Вам необходимо удалить / {_ locale} / login и / enj_locale automotive/login_check.

Надеюсь, это поможет вам.

0 голосов
/ 28 августа 2014

В вашем маршруте login_check отсутствует контроллер по умолчанию, должно быть:

login_check:
    pattern:   /{_locale}/login_check
    defaults:  { _controller: XYZSiteBundle:SiteUser:loginCheck }
0 голосов
/ 12 февраля 2012

Значение check_path в вашем разделе form_login не будет соответствовать /en/login_check.

Вы должны изменить его, чтобы оно соответствовало /.*/login_check.

...