dsjswclzh40259075 2016-12-18 18:23
浏览 38
已采纳

Symfony 3,这样的全局控制器?

I'm sorry for the code-less-ness of this question but is there like a global controller that fires for every website page?

Like for instance on 90% of my websites content I want to have a "recent comments" feed printing all the latest comments from the database.

In which file/function could I define such functionality without having to print it in every controller?

  • 写回答

2条回答 默认 最新

  • douluoxiao2286 2016-12-18 21:45
    关注

    There is no such thing as a global controller in Symfony. preDispatch and postDispatch are gone long time ago.

    Nowadays everything is done with events.

    If you want to run some code before the controller is executed you should add a listener to kernel.controller event. See details about events in Symfony documentation.

    This is the detailed explanation how to do it.

    But...

    In your case I don't think it is needed to do this. Instead you can use Twig Etensions. Set up the extension as a service (with all dependencies). Call it in the place where you need to show "recent comments". I think that in your case Twig Functions fits the best.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?