Symfony: переопределить сброс контроллера FOSUserBundle

Я пытаюсь переопределить сброс контроллера FOSUserBundle. Мой собственный UserBundle переопределяет весь пакет, и он отлично работает, например, для шаблонов, но я впервые пытаюсь переопределить контроллер, и кажется, что я делаю что-то не так.

Попытка сделать это таким образом (только копирование в первой строке, поскольку остальная часть контроллера по-прежнему используется по умолчанию):

namespace UserBundle\Controller\User;

use FOS\UserBundle\Controller\ResettingController as BaseController;
...


class ResettingController extends BaseController{
...

Кнопка "Сбросить пароль" находится на моей странице входа.

То, что я пытаюсь достичь, это некоторые настройки для checkEmailAction. Я хочу проверить, является ли человек, который запрашивает сброс пароля, "заблокированным" пользователем или нет, а также отправить правильное "ответное сообщение" для каждого запроса. Остальная часть контроллера может остаться прежней. Я добавил несколько дампов и "умереть"; в код, чтобы проверить, есть ли какой-либо вывод, но его нет.

Где мне лучше начать искать? Согласно документации https://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html мне не нужно быть больше, чем я уже делаю.

2 ответа

Решение

Мое решение: моя ошибка была в файле routing.yml. У меня сначала было:

fos_user_resetting_reset: path: /resetting/request defaults: { _controller: UserBundle:Resetting:request }

Но я никогда не хотел переопределять метод запроса, и имя Fos_user_resetteing_reset не совпадало с запросом.

Итак, мое окончательное решение:

fos_user_resetting_send_email:
    path: /resetting/send-email
    defaults: { _controller: UserBundle:User\Resetting:sendEmail }
fos_user_resetting_check_email:
    path: /resetting/check-email
    defaults: { _controller: UserBundle:User\Resetting:checkEmail }

таким образом, я переопределяю только эти два метода, а остальная часть контроллера сброса по-прежнему выбирает стандартный.:)

Исправить пространство имен от

namespace UserBundle\Controller\User;

в

namespace UserBundle\Controller;
Другие вопросы по тегам