如何在Symfony4中为一个或两个控制器添加中间件?

时间:2018-01-22 08:16:07

标签: php symfony symfony-flex

我想要一些控制器,它们有这样的方法:

public function syncAction(EntityManager $em)
{
    $posts = $em->getRepository('App:Posts')->findAllByOwner($this->getUser());

    return new JsonResponse(['ok' => true, 'posts' => $this->toJson($posts)]);
}

我想添加类似中间件的东西,以便从该控制器的所有操作中自动进行jsonify响应。简单地做到这一点:

    return new JsonResponse(['ok' => true, 'posts' => $posts]);

PS还自动序列化我的实例。

1 个答案:

答案 0 :(得分:0)

Symfony没有中间件概念,但event监听器和订阅者(​​基本相同)。

查看https://symfony.com/doc/current/event_dispatcher/before_after_filters.html

您将使用kernel.responseKernelEvents::RESPONSE)事件来操纵控制器响应。