代码之家  ›  专栏  ›  技术社区  ›  JoeyD473

Slim3告诉我无法找到可调用的路径

  •  0
  • JoeyD473  · 技术社区  · 7 年前

    我是个新手。我遇到一个错误,告诉我可调用控制器不存在。然而,我的另一个控制器(HomeController)确实可以工作。我肯定我在做一些愚蠢的事情,但我不知道是什么。

    错误消息

    Type: RuntimeException
    Message: Callable JoeyD473\RPG_Tools\controllers\traveller\UniverseCreationControllercreateUniverse does not exist
    File: C:\Users\Joey\Web\JRD_Traveller_Tools\vendor\slim\slim\Slim\CallableResolver.php
    
    Line: 90
    

    \public
        index.php
        .htaccess
    \src
        \app
            \controllers
                BaseController.php
                HomeController.php
                \traveller
                    UniverseCreationController.php
            \model
            \views
             config.php
             container.php
             routes.php
    

    composer.json

    "autoload": {
        "psr-4": {
            "JoeyD473\\RPG_Tools\\models\\": "src/app/model",
            "JoeyD473\\RPG_Tools\\controllers\\": "src/app/controllers"
        }
    },
    

    container.php

    $container = $app->getContainer();
    
    $container['view'] = new \Slim\Views\PhpRenderer(APP.'views/');
    
    $container['db'] = function($c){
        $settings = $c->get('settings')['db'];
    
        $db = new \Aura\Sql\ExtendedPdo($settings['vendor'].':host='.$settings['host'].';dbname='.$settings['db_name'],$settings['username'],$settings['password']);
    
        return $db;
    };
    
    $container['HomeController'] = function($container){
        return new \JoeyD473\RPG_Tools\controllers\HomeController;
    };
    
    $container['UniverseCreationController'] = function($container){
        return new \JoeyD473\RPG_Tools\controllers\traveller\UniverseCreationController;
    };
    

    $app->get('/',JoeyD473\RPG_Tools\controllers\HomeController::class.':home');
    
    $app->get('/api',JoeyD473\RPG_Tools\controllers\HomeController::class.':sw_api');
    
    $app->get('/temp',JoeyD473\RPG_Tools\controllers\HomeController::class.':temp');
    
    $app->get('/universe/create_new_universe',JoeyD473\RPG_Tools\controllers\traveller\UniverseCreationController::class.'createUniverse');
    

    namespace JoeyD473\RPG_Tools\controllers\traveller;
    
    use JoeyD473\RPG_Tools\controllers\BaseController;
    use JoeyD473\RPG_Tools\models\traveller\universe\Universes;
    
    class UniverseCreationController extends BaseController
    {
        public function createUniverse($request,$response)
        {
            return $this->container->view->render($response,'travellers/universe/create_universe.phtml');
        }
    
        public function generateUniverse($request,$response)
        {
            $universe = new Universes($this->db);
            return 'generateSector';
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   jmattheis zzz    7 年前

    你错过了一个冒号( : )在你最后的路线上

    \traveller\UniverseCreationController::class.'createUniverse');
                                               ^^^
    

    [YourClass::class, 'yourMethod']