写这个事件监听的原因:项目中所有的控制器里面的操作,都必须是登录以及必须有权限。
1.创建一个监听类
2.将类注册成服务
app/config/services.yml
3.在监听类里面写东西
<?php namespace AppBundle\EventListener; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Material\Exception\NoAuthorityException; use Material\Exception\BaseException; class AuthListener { public function onKernelRequest(GetResponseEvent $event) { return; $request = $event->getRequest(); $targetUser = $request->getSession()->get('targetUser'); if (empty($targetUser)) { throw new NoAuthorityException('未登陆'); } if (!$targetUser->isMember()) { throw new NoAuthorityException('不是会员,没有权限'); } } }
未完待续