安装 laravel-modules
composer require nwidart/laravel-modules
执行,注册应用,成功后在config文件夹下会生成一个modules.php
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
修改composer.json文件,在"autoload": 加上 "Modules\\": "Modules/"
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/"
}
}
修改config文件夹下的modules.php
// 默认的命名空间是modules 我这里修改成了 app
'namespace' => 'App',
// app 就是你的路径 你想把模块放在那里 就改路径的地址
'modules' => base_path('app'),
现在就可以添加新的模块了,我这里添加了三个模块
php artisan module:make Api
php artisan module:make Home
php artisan module:make Admin
模块创建成功之后记得运行下面的代码
composer dump-autoload
给每个模块添加路由,routes添加web.php、api.php和admin.php三个文件
web.php(首页路由)
<?php
use App\Home\Http\Controllers\HomeController;
use Illuminate\Support\Facades\Route;
Route::get('/', [HomeController::class, 'index']);
api.php(接口路由)
<?php
use App\Api\Http\Controllers\ApiController;
use Illuminate\Support\Facades\Route;
Route::get('/', [ApiController::class, 'index']);
admin.php(后台路由)
<?php
use App\Admin\Http\Controllers\AdminController;
use Illuminate\Support\Facades\Route;
Route::get('/', [AdminController::class, 'index']);
在app/Http/Kernel.php中的$middlewareGroups数组中添加以下代码
'admin'=> [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
在app/Providers/RouteServiceProvider.php中的boot方法中添加以下代码
Route::prefix('admin')
->middleware('admin')
->namespace($this->namespace)
->group(base_path('routes/admin.php'));
具体路由规则自己写,到这里就完成了。