13

初めて Lumen フレームワークを使用し/ます。HomeController へのルートが機能していません。

これは私のroute.phpです:

$app->get('/', 'HomeController@index');

しかし、次のエラーが表示されます。

[2015-04-17 07:03:41] lumen.ERROR: exception 'ReflectionException' with message 'Class HomeController does not exist' in /Users/refear99/Web/qingsongchou_api/vendor/illuminate/container/Container.php:776

Stack trace:
#0 /Users/refear99/Web/qingsongchou_api/vendor/illuminate/container/Container.php(776): ReflectionClass->__construct('HomeController')
#1 /Users/refear99/Web/qingsongchou_api/vendor/illuminate/container/Container.php(656): Illuminate\Container\Container->build('HomeController', Array)
#2 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(358): Illuminate\Container\Container->make('HomeController', Array)
#3 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1184): Laravel\Lumen\Application->make('HomeController')
#4 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1157): Laravel\Lumen\Application->callControllerAction(Array)
#5 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1142): Laravel\Lumen\Application->callActionOnArrayBasedRoute(Array)
#6 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1120): Laravel\Lumen\Application->handleArrayBasedFoundRoute(Array)
#7 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1058): Laravel\Lumen\Application->handleFoundRoute(Array)
#8 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1006): Laravel\Lumen\Application->dispatch(NULL)
#9 /Users/refear99/Web/qingsongchou_api/public/index.php(28): Laravel\Lumen\Application->run()
#10 {main}  

これは /app/Http/Controllers/ にある私の HomeController.php です

<?php namespace App\Http\Controllers;

class HomeController extends Controller {

public function index()
{
    echo 123;
}

}

問題は何でしょうか?

4

3 に答える 3

2

現在は文書化されていないようですが、コントローラーへの完全な名前空間パスを使用する必要があります。

したがって、ルートは次のようになります。

$app->get('/', 'App\Http\Controllers\HomeController@index');

違いは、Laravel に同梱されている RouteServiceProvider にあります。これは app/Providers/RouteServiceProvider.php にあります。map メソッドを確認してください。次のようになります。

$router->group(['namespace' => $this->namespace], function($router)
{
    require app_path('Http/routes.php');
});

したがって、すべてのアプリケーション ルートは、実際にはデフォルトの名前空間 (通常は App\Http\Controllers) の下にグループ化されます。

それが役立つことを願っています!

于 2015-04-17T08:33:18.843 に答える
0

ファイルを見て、/bootstrap/app.phpいくつかの設定を行うことができます。また、ファイルの下部に、次の行があります。

$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
    require __DIR__.'/../app/Http/routes.php';
});

return $app;

適切な名前空間で呼び出しを処理する必要があります。

また、そこで .env 設定を有効にすることもできます :)

この投稿をご覧ください https://mattstauffer.co/blog/introducing-lumen-from-laravel

これが誰かを助けることを願っています! :)

于 2015-06-24T12:03:01.600 に答える