php - 如何在 Symfony4 中为一个或两个 Controller 添加中间件?

标签 php symfony symfony-flex

我想要一些具有如下方法的 Controller :

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

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

我想添加中间件之类的东西,以便自动对来自该 Controller 的所有操作的响应进行 jsonify 响应。并且能够简单地做到这一点:

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

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

最佳答案

Symfony 没有中间件的概念,只有event监听器和订阅者(​​基本上是一样的东西)。

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

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

关于php - 如何在 Symfony4 中为一个或两个 Controller 添加中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48377175/

相关文章:

symfony-flex - 我应该在我的版本控制中保留 symfony.lock 吗?

php - Symfony 4 Doctrine 无法从控制台工作 [2002] 没有这样的文件或目录

php - 了解支付网关、SSL 和 PCI DSS 合规性检查 - PHP

php - 如何让 crypt() 正常工作?

php - Magento sales_flat_order_item 表

php - 将遗留项目迁移到 Symfony 路由问题

symfony - monolog 发送旧日志

php - 在html页面中显示静态数据

symfony - 如何在 Symfony 2 中实现标签?

php - 参数太少 : the query defines 1 parameters but you only bound 0