【问题标题】:Routing to a view (twig file) without calling a function?在不调用函数的情况下路由到视图(树枝文件)?
【发布时间】:2018-12-23 04:33:46
【问题描述】:

你有这个 /src/AppBundle/Resources/views/tests/index.html.twig 只包含:

{{text}}

并且由 /src/AppBundle/Controller/TestsController.php 控制,该文件在渲染“文本”的函数上使用 Route 可以正常工作。现在我想要一个位于 /src/AppBundle/Resources/config/routing.yml 的路由文件。显然,在旧版本中,这可以通过以下方式完成:

tests_index:
    path: /tests/index
    defaults: [_controller: AppBundle:Tests:index]

但是当我尝试通过http://localhost/project/web/tests/index 联系它时,也许我错过了一些东西,或者新的 Symfony 没有购买它。错误是:

找不到路径“/pruebas/index”的控制器。路线是 配置错误。

【问题讨论】:

    标签: php symfony routes


    【解决方案1】:

    您的问题的标题很奇怪,因为您确实想使用控制器。无论如何,您的配置不正确。它应该是这样的:

    tests_index:
        path:     /tests/index
        controller: App\Controller\TestsController::show
    

    在这种情况下,show 是控制器中函数的名称。 另外我建议使用路由注释。它使生活更轻松。阅读更多关于它的信息here

    【讨论】:

    • 对不起,我想说我想路由到文件而不必指向方法。在我的情况下,您指示的代码是:pruebas_index: path: /pruebas/index controller: AppBundle\Controller\PruebasController:indexAction 但我不想指向“indexAction”。无论如何,我之前用注释解决了它,但认为路由文件更干净,更好。不指向方法就不能完成吗?非常感谢!
    • 您为什么要这样做?整个框架是构建的,您必须在控制器中为每个操作提供一个函数/方法。
    • 考虑到注释,我绝对更喜欢这种方法,但这取决于你,这并不重要。
    • 嗯,对不起,你是对的。我只是想学习使用它,但实际上我不知道它是哲学。在继续之前,我会阅读它。谢谢!
    • 查看此页面了解更多信息:symfony.com/doc/current/controller.html。如果你刚刚开始,我也推荐这个(免费)教程:knpuniversity.com/screencast/symfony/setup
    猜你喜欢
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2015-07-09
    • 2014-11-03
    • 2021-03-22
    相关资源
    最近更新 更多