【问题标题】:Symfony 2 route with no custom controller code没有自定义控制器代码的 Symfony 2 路由
【发布时间】:2017-07-02 04:51:53
【问题描述】:

我在我的 SF2 应用程序中使用注释定义了我的路由,但是有一些页面虽然它们具有不同的路由和 Twig 模板,但它们不需要任何控制器代码,这会导致诸如以下的空方法:

/**
 * @Route(
 *      "/courselimit",
 *      name = "course_limit"
 * )
 * @Template("CRMPiccoBundle:Course:Limit.html.twig")
 *
 * @param Request $request
 *
 * @throws \Exception
 */
public function courseLimitAction(Request $request)
{
}

在我看来,这似乎毫无意义且混乱。有没有办法在 SF2 中避免这种情况,而无需将我的所有路由转换为在 YAML 文件中进行管理?

【问题讨论】:

    标签: php symfony routing php-7 symfony-routing


    【解决方案1】:

    您可以像这样编辑app/config/routing.yml:

    # app/config/routing.yml
    course_limit:
        path:      /courselimit
        defaults:
            _controller: FrameworkBundle:Template:template
            template: path/Limit.html.twig
    

    示例显示在没有自定义控制器的渲染模板中: http://symfony.com/doc/2.7/templating/render_without_controller.html

    【讨论】:

    • 谢谢,我在之前的文档中找不到类似的内容。现在我有两种想法,在这种情况下最好的方法或最佳实践是什么。当所有其他应用程序级路由都在注释中定义时,我应该在routing.yml 中定义路由,还是应该在代码库中保留空方法?我即将将路线移至routing.yml,因为有一个专门针对它的 Symfony 文档,所以我认为这一定是一个共同的问题。
    • 一开始我误读了你的问题,但在你的情况下,似乎使用没有控制器的routing.yaml 文件是可行的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2011-11-24
    • 2013-08-23
    • 1970-01-01
    • 2016-05-17
    • 2016-04-05
    相关资源
    最近更新 更多