Symfony: Override FOSUserBundle Resetting Controller

左心房为你撑大大i 提交于 2020-01-17 08:38:05

问题


I'm trying to override the Resetting Controller of the FOSUserBundle. My own UserBundle is overriding the whole bundle, and it's working fine for e.g. templates but it's the first time I try to override a Controller and it seems like I'm doing something wrong.

Trying it that way (only copying in the first line since the rest of the controller is still the default one):

namespace UserBundle\Controller\User;

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


class ResettingController extends BaseController{
...

The "Reset Password" button is located on my login page.

What I'm trying to achieve is some customization for the checkEmailAction. I want to check whether the person who's requesting the password reset is a "locked" user or not, and also send a correct "Response Message" for each request. The rest of the Controller can stay the same. I added some dumps and a "die;" into the code to check if there's any output but there is none.

Where do I best start looking? According to the documentation https://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html I shouldn't have to be more than I'm already doing.


回答1:


My solution: my mistake was in the routing.yml file. I first had:

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

But I never actually wanted to override the request method and also the name Fos_user_resetteing_reset didn't match with request.

So my final solution:

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 }

this way I'm only overriding these two methods and the rest of the Resetting controller still picks up on the default one. :)




回答2:


Fix namespace from

namespace UserBundle\Controller\User;

to

namespace UserBundle\Controller;


来源:https://stackoverflow.com/questions/48065784/symfony-override-fosuserbundle-resetting-controller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!