流明 5.3 路线不起作用
Lumen 5.3 route not working
我正在为电子商务网站开发 Lumen REST API。突然我的应用程序崩溃了。我已经更新了我的作曲家和所有东西。但是我找不到错误在哪里。但它只显示在控制器文件中。
错误:
ReflectionException in Container.php line 749:Class App\Http\Controllers\App\Http\Controllers\SubcatController does not exist
1. in Container.php line 749
2. at ReflectionClass->__construct('App\Http\Controllers\App\Http\Controllers\SubcatController') in Container.php line 749
3. at Container->build('App\Http\Controllers\App\Http\Controllers\SubcatController', array()) in Container.php line 644
4. at Container->make('App\Http\Controllers\App\Http\Controllers\SubcatController', array()) in Application.php line 211
5. at Application->make('App\Http\Controllers\App\Http\Controllers\SubcatController') in RoutesRequests.php line 680
6. at Application->callControllerAction(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\SubcatController@all'), array())) in RoutesRequests.php line 647
7. at Application->callActionOnArrayBasedRoute(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\SubcatController@all'), array())) in RoutesRequests.php line 632
8. at Application->handleFoundRoute(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\SubcatController@all'), array())) in RoutesRequests.php line 529
9. at Application->Laravel\Lumen\Concerns\{closure}(object(Request))
10. at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
11. at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in ExampleMiddleware.php line 30
12. at ExampleMiddleware->handle(object(Request), object(Closure)) in Pipeline.php line 137
13. at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
14. at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
15. at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in Pipeline.php line 104
16. at Pipeline->then(object(Closure)) in RoutesRequests.php line 782
17. at Application->sendThroughPipeline(array('App\Http\Middleware\ExampleMiddleware'), object(Closure)) in RoutesRequests.php line 535
18. at Application->dispatch(null) in RoutesRequests.php line 476
19. at Application->run() in index.php line 28
请帮助我。
没有看到你的路由定义只有那个错误,看起来你正在路由中定义控制器的命名空间。 Lumen 自动假定您所有的控制器都位于 App\Http\Controllers
.
我必须假设你正在这样做:
$app->get('myroute', ['as' => 'my.route', 'uses' => 'App\Http\Controllers\SubcatController']);
什么时候应该是:
$app->get('myroute', ['as' => 'my.route', 'uses' => 'SubcatController']);
你的命名空间是错误的:
App\Http\Controllers\App\Http\Controllers\SubcatController
确保您的控制器命名空间如下:
<?php
namespace App\Http\Controllers;
// ......
class SubcatController extends Controller
{
}
在你的路由文件中,你可以这样做:
Route::get('foo/bar', 'SubcatController@foo');
$app->get('myroute', ['as' => 'my.route', 'uses' => 'SubcatController']);
先生Eric Tucker 告诉这个代码它对我有用。
谢谢
检查你的 /bootstrap/app.php。
有代码:
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
require __DIR__.'/../app/Http/routes.php';
});
可能您的 routes.php 也使用了命名空间 'App\Http\Controllers'。它是重复的。从您的 routes.php
中删除此命名空间
我正在为电子商务网站开发 Lumen REST API。突然我的应用程序崩溃了。我已经更新了我的作曲家和所有东西。但是我找不到错误在哪里。但它只显示在控制器文件中。
错误:
ReflectionException in Container.php line 749:Class App\Http\Controllers\App\Http\Controllers\SubcatController does not exist
1. in Container.php line 749
2. at ReflectionClass->__construct('App\Http\Controllers\App\Http\Controllers\SubcatController') in Container.php line 749
3. at Container->build('App\Http\Controllers\App\Http\Controllers\SubcatController', array()) in Container.php line 644
4. at Container->make('App\Http\Controllers\App\Http\Controllers\SubcatController', array()) in Application.php line 211
5. at Application->make('App\Http\Controllers\App\Http\Controllers\SubcatController') in RoutesRequests.php line 680
6. at Application->callControllerAction(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\SubcatController@all'), array())) in RoutesRequests.php line 647
7. at Application->callActionOnArrayBasedRoute(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\SubcatController@all'), array())) in RoutesRequests.php line 632
8. at Application->handleFoundRoute(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\SubcatController@all'), array())) in RoutesRequests.php line 529
9. at Application->Laravel\Lumen\Concerns\{closure}(object(Request))
10. at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
11. at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in ExampleMiddleware.php line 30
12. at ExampleMiddleware->handle(object(Request), object(Closure)) in Pipeline.php line 137
13. at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
14. at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
15. at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in Pipeline.php line 104
16. at Pipeline->then(object(Closure)) in RoutesRequests.php line 782
17. at Application->sendThroughPipeline(array('App\Http\Middleware\ExampleMiddleware'), object(Closure)) in RoutesRequests.php line 535
18. at Application->dispatch(null) in RoutesRequests.php line 476
19. at Application->run() in index.php line 28
请帮助我。
没有看到你的路由定义只有那个错误,看起来你正在路由中定义控制器的命名空间。 Lumen 自动假定您所有的控制器都位于 App\Http\Controllers
.
我必须假设你正在这样做:
$app->get('myroute', ['as' => 'my.route', 'uses' => 'App\Http\Controllers\SubcatController']);
什么时候应该是:
$app->get('myroute', ['as' => 'my.route', 'uses' => 'SubcatController']);
你的命名空间是错误的:
App\Http\Controllers\App\Http\Controllers\SubcatController
确保您的控制器命名空间如下:
<?php
namespace App\Http\Controllers;
// ......
class SubcatController extends Controller
{
}
在你的路由文件中,你可以这样做:
Route::get('foo/bar', 'SubcatController@foo');
$app->get('myroute', ['as' => 'my.route', 'uses' => 'SubcatController']);
先生Eric Tucker 告诉这个代码它对我有用。
谢谢
检查你的 /bootstrap/app.php。 有代码:
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
require __DIR__.'/../app/Http/routes.php';
});
可能您的 routes.php 也使用了命名空间 'App\Http\Controllers'。它是重复的。从您的 routes.php
中删除此命名空间