由于不是 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
它应该可以工作...
我正在尝试使用 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
它应该可以工作...