流明 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

中删除此命名空间