douju4278 2019-07-09 12:13
浏览 115

依赖项中的细微错误无法找到控制器

I'm getting Slim Application Error:

Class 'Slim\App\Controllers\MainController' not found

This seems to be the same as others posts except, they don't have the 'Slim' in front. I think that's why it is failing.

project structure

/src
    /Controllers
        MainController.php
    /vendor
    /public
        index.php

composer.json

{
"require": {
    "slim/slim": "^3.12"
},

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

}

index.php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$configuration = [
    'settings' => [
    'displayErrorDetails' => true,
],
];
$c = new \Slim\Container($configuration);
$app = new \Slim\App($c);

require_once('../settings.php');
require_once('../dependencies.php');
require_once('../routes.php');

$app->run();

dependencies.php

use Slim\App;
use Slim\Container;
use App\Controllers;

$container = $app->getContainer();

$container['MainController'] = function ($c)
{
    return new App\Controllers\MainController;
};

/src/Controllers/MainController.php

namespace App\Controllers;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

class MainController
{
public function search(Request $request, Response $response, $args)
{
    $response->write("Hello");

    return $response;
}
}
  • 写回答

2条回答 默认 最新

  • duannai5858 2019-07-09 18:23
    关注

    Always use the full class name for the container id.

    Example

    use App\Controllers\MainController;
    // ...
    
    $container[MainController::class] = function ($c)
    {
        return new MainController();
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog