【发布时间】:2017-05-17 09:28:01
【问题描述】:
我正在使用这种模式实现一个控制器过滤器:
http://symfony.com/doc/current/event_dispatcher/before_after_filters.html#creating-an-event-listener
但是,我不想抛出 HTTP 异常,而是想返回响应。
我该怎么做? SF2 中最好/最容易接受的方式是什么?
public function onKernelController(FilterControllerEvent $event)
{
if (!$event->isMasterRequest()) {
return;
}
$controller = $event->getController();
// $controller passed can be either a class or a Closure.
// This is not usual in Symfony but it may happen.
// If it is a class, it comes in array format
if (!is_array($controller)) {
return;
}
if ($controller[0] instanceof ResourceServerAuthorizedController) {
$request = $event->getRequest();
$response = $this->resourceServer->authorize($request);
if (!$response->isOk()) {
return $response; // ??? HERE
}
}
}
【问题讨论】:
-
不懂,
return $response是回复。或创建另一个回复return new Response('No authorized')
标签: php symfony symfony-2.8