【问题标题】:How to add middleware for one or two controllers in Symfony4?Symfony4中如何为一两个控制器添加中间件?
【发布时间】:2023-03-07 18:23:01
【问题描述】:

我想要一些具有以下方法的控制器:

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 还会自动序列化我的实例。

【问题讨论】:

    标签: php symfony symfony-flex


    【解决方案1】:

    Symfony 没有中间件的概念,但是event 监听器和订阅者(​​基本上是一回事)。

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

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

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多