【问题标题】:Trying to start Symfony Routing component尝试启动 Symfony 路由组件
【发布时间】:2016-11-24 17:08:03
【问题描述】:

我正在尝试使用 Symfony 路由组件,但我无法理解一件事 - 我应该如何在 Route 类的实例中设置控制器路径?

例如,我有一个/web 目录,我在其中放置了我的app.php 文件和代码:

$route = new Route('/{name}', array('controller' => 'IndexController.php'));

并且在同一目录中还放置了IndexController.php 文件,其中放置了应该接受参数名称并返回一些值的函数:

class IndexController
{

    public function helloAction($name) {
        return 'Hello '. $name;
    }

}

但是当我转到某个路径时,例如 /test,我看到的只是空白页。

我应该如何设置控制器和动作函数的路径?

【问题讨论】:

标签: php symfony components


【解决方案1】:

您不需要设置控制器的路径 - 您应该关注 PSR-4 并将 FQCN 放在“控制器”键下(或只是 IndexController::class

【讨论】:

    【解决方案2】:

    您的IndexController 不应在/web 文件夹中,而应在/src/YourBundleName 文件夹中,您需要先在 Symfony 中注册您的路由。

    使用 Symfony 控制台为您生成包和控制器:

    // Generate bundle
    php bin/console generate:bundle
    
    // Generate controller
    php bin/console generate:controller
    

    控制器生成器会询问您的路线并自动为您生成路线。

    使用可以使用另一个 Symfony 控制台命令来检查您注册的路由:

    php bin/console debug:router
    

    如果您在此处看不到您的路线,则说明该路线未注册且您无法访问。

    【讨论】:

    • 我没有使用 Symfony,我只是想在我的项目中实现 Symfony 的单独组件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2018-05-26
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多