流明框架路由不起作用
lumen framework routing not working
我是第一次使用 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;
}
}
可能是什么问题?
它现在似乎没有记录,但您需要使用控制器的完整命名空间路径。
所以你的路线应该是这样的:
$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。
希望对您有所帮助!
您必须使用完全限定的类名:
$app->get('/', 'App\Http\Controllers\HomeController@index');
或 将所有路由包装在一个组中(这实际上是 Laravel 5 中的幕后操作)
$app->group(['namespace' => 'App\Http\Controllers'], function($group){
$group->get('/', 'HomeController@index');
$group->get('foo', 'FooController@index');
});
查看文件/bootstrap/app.php
您可以在那里进行一些设置。此外,在文件的底部,您会找到以下几行。
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
require __DIR__.'/../app/Http/routes.php';
});
return $app;
哪个应该使用正确的命名空间为您的调用提供服务。
您也可以在那里激活 .env 设置 :)
看看这个Posthttps://mattstauffer.co/blog/introducing-lumen-from-laravel
希望这对某人有所帮助! :)
我是第一次使用 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;
}
}
可能是什么问题?
它现在似乎没有记录,但您需要使用控制器的完整命名空间路径。
所以你的路线应该是这样的:
$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。
希望对您有所帮助!
您必须使用完全限定的类名:
$app->get('/', 'App\Http\Controllers\HomeController@index');
或 将所有路由包装在一个组中(这实际上是 Laravel 5 中的幕后操作)
$app->group(['namespace' => 'App\Http\Controllers'], function($group){
$group->get('/', 'HomeController@index');
$group->get('foo', 'FooController@index');
});
查看文件/bootstrap/app.php
您可以在那里进行一些设置。此外,在文件的底部,您会找到以下几行。
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
require __DIR__.'/../app/Http/routes.php';
});
return $app;
哪个应该使用正确的命名空间为您的调用提供服务。
您也可以在那里激活 .env 设置 :)
看看这个Posthttps://mattstauffer.co/blog/introducing-lumen-from-laravel
希望这对某人有所帮助! :)