在Symfony3中需要写一个success句柄来实现刷新登录时间和登录加1的功能。简单说一下创建成功句柄的过程。使用的环境如下PHP版本:7.1.8Symfony版本:3.3.5默认管理员权限相关的Bundle命名为AuthorizationBundle首先,我们在AuthorizationBundle下创建一个Service文件夹,用来存放所有与服务相关的文件。创建一个AuthorizationHandle.php文件,这是我们用来实现成功句柄的代码文件。由于实际成功句柄需要实际AuthenticationSuccessHandlerInterface接口中的方法,所以我们的句柄类这样写getUser();$user->setLastLogin(new\DateTime());$用户->保存();returnnewRedirectResponse($this->container->get('router')->generate('huan_yue_admin_authorization_dashboard'));}}让我解释一下下面的代码。AuthenticationSuccessHandlerInterface中的注释明确说我们可以在onAuthenticationSuccess中实现我们的功能,最后需要返回一个Response来刷新登录时间,或者对登录加1,或者其他跳转到后台首页的操作,所以我们需要生成一个RedirectResponse。我在我的代码中使用Symfony容器来获取路由器,所以我需要使用提供给我们的SymfonyTrait(注:ContainerAware类在版本2.*中可以直接继承)。至此,我们成功的handel已经实现了。Next,weregisterourAuthorizationHandletoSymfony'sService,andaddservices:huan_yue_authorization.authorization_handle:class:HuanYue\AuthorizationBundle\Service\AuthorizationHandlecalls:-[setContainer,["@service_container"]inResources\services.yml]最后一步,修改app\config\security.yml文件,在form_login下添加我们的successhandle,代码如下form_login:check_path:huan_yue_admin_authorization_loginlogin_path:huan_yue_admin_authorization_logindefault_target_path:huan_yue_admin_authorization_dashboardsuccess_handler:huan_yue_authorization.authorization_handle到此,整个流程完成。