首页 > 解决方案 > 在 slim 3 中找不到控制器

问题描述

我是苗条的新手,所以请多多包涵。我有像这样的项目结构

\slim
  \public
    index.php
    
  \src
    \controllers
         \reports
        BillingReportController.php
       \routes
         router.php
       \config
         db.php

但是每当我通过路由调用控制器时,它都会给我以下错误

“PHP 致命错误:在第 13 行的 /var/www/html/apimod/public/index.php 中找不到类 'src\controllers\reports\BillingReportController'”

至于错误中提到的那一行,代码片段如下。

索引.php

$container = $app->getContainer();
$container['BillingReportController'] = function($container){
    return new \src\controllers\reports\BillingReportController;
}; 

路由器.php

$app->group('/report', function() use ($app) {

  $app->get('/billing', 'BillingReportController:billing');
});

BillingReportController.php

namespace src\controllers\BillingReportController;

class BillingReportController{
    public function billing($request, $response){
        //my code goes here
    }
}

任何人都可以指出错误。

标签: phproutescontrollerslim-3

解决方案


您必须在作曲家中使用自动加载。像这样的东西。

"autoload": {
"psr-4": {
  "src\\": "src"
 }
}

然后在你的终端输入这个命令

composer dump-autoload

它应该可以解决您的问题


推荐阅读