由于不是 class 或有效容器条目导致的 Slim 应用程序错误

Slim Application Error due not a class or valid container entry

我正在尝试使用 slim 框架来构建网站,但是出现以下错误:"Cannot call index on Store\HomeController because it is not a class nor a valid container entry." 我已经彻底检查了拼写和标点符号错误并发现了 none。错误转到以下代码的“callableResover.php 文件的第 98 行:

throw new NotCallableException(sprintf(
    'Cannot call %s on %s because it is not a class nor a valid container entry',
    $callable[1],
    $callable[0]
));

这是我创建的 HomeController.php 文件,如下所示: 命名空间 Store\Controllers;

class HomeController{
  public function index(){
    echo('Index');

  }//end function index

}//end class

这是以下代码的 route.php 文件:

$app->get('/', ['Store\HomeController', 'index'])->setName('home');

假设您的 HomeController 文件在您的 route.php 文件中使用之前已加载,请尝试:

1。将 \ 添加到路由定义中控制器的命名空间

\Store\HomeController

2。改成这条路线

$app->get('/', \Store\HomeController::class . ':index');

查看 Slim 文档以了解有关 container resolution

的更多信息

我发现了一个问题.. class 可能在 /vendor/composer/autoload_classmap.php

中注册

所以你必须用命令重新生成它 composer dump-autoload

它应该可以工作...