Controllers下admin目录的控制器,路由写法问题

我在controllers下admin目录创建indexController 控制器,路由中的写法是

Route::group(['namespace' => 'Admin', 'prefix' => 'admin'],function(){
  Route::get('/', 'Admin\IndexController@index');
});

访问127.0.0.1:8001/admin,报错提示无法找到控制器,

Route::get('/admin','App\Http\Controllers\Admin\IndexController@index');

这样写就能访问到控制器,是必须写完整的命名空间吗?
由于先前安装过Laravel-Modules 扩展,后来删除了,不确定是否是这个问题造成的,或者我的路由写法出现问题了吗?
IndexController 的代码如下:

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class IndexController extends Controller
{
    //
    public function index(){

        return view('index');
    }
}
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

如果你这是laravel8的话,默认的命名空间已经移除了。

3年前 评论
讨论数量: 4

很明显第一个代码片段中指定了 'namespace' => 'Admin' ,而 / 路由中又重复加上了 Admin\ 。个人习惯直接在 RouteServiceProvider 中直接定义,

protected function mapAdminRoutes() {
        Route::middleware(['web', 'backend:admin'])->prefix('admin')->namespace($this->namespace . '\Admin')->group(base_path('routes/admin.php'));
    }
3年前 评论
da_house

改成这样是试试呢,已经写了namespace了,不需要在加一个

Route::group(['namespace' => 'Admin', 'prefix' => 'admin'],function(){
  Route::get('/', 'IndexController@index');
});
3年前 评论

如果你这是laravel8的话,默认的命名空间已经移除了。

3年前 评论

谢谢了,我去看看,原来默认的命名空间,被移除了!麻烦了···

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!