1、安装多应用模块
composer require nwidart/laravel-modules
2、执行命令,config文件夹下生成一个modules.php
配置文件
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
3、修改config文件夹下的modules.php
,修改两个地方
// 默认的命名空间是modules 我这里修改成了 app'namespace' => 'App',// app 就是你的路径 你想把模块放在那里 就改路径的地址'modules' => base_path('app'),
4、修改composer.json
文件,在"autoload"
: 加上 "Modules\\": "Modules/"
"autoload": { "psr-4": { "App\\": "app/", "Modules\\": "Modules/" }}
5、添加新模块Admin
php artisan module:make Admin
6、重新加载composer
composer dump-autoload
7、多模块路由配置
在app/Http/Kernel.php
中的$middlewareGroups
数组中添加以下代码
'admin'=> [ \Illuminate\Routing\Middleware\SubstituteBindings::class,],
在app/Providers/RouteServiceProvider.php
中的boot
方法中添加以下代码prefix是路由前缀,表示我们访问Admin模块的路由都需要加上这个前缀
Route::prefix('admin')->middleware('admin')->namespace($this->namespace)->group(base_path('routes/admin.php'));
在根目录下的routes
文件夹创建新的admin.php
路由文件,我们用这个文件管理Admin
模块的路由
<?phpuse App\Admin\Http\Controllers\AdminController;use Illuminate\Support\Facades\Route;Route::get('/index', [AdminController::class, 'index']);
控制器的代码如下
访问结果
注意一:我们设置了路由前缀prefix
是admin
使用后台路由的时候需要加上这个admin
注意二:如果我们访问是404,这时候一般是以下两种情况,第一种是我们首次安装laravel
并且用的是nginx
服务器,第二种是我们本地用的是apache
上线之后是nginx服务器,也会出现这种情况,就是除了首页/
根目录可以访问,其他目录都是404
,我们修改public目录下的nginx.htaccess
配置文件即可,将以下代码复制进去
location / { try_files $uri $uri/ /index.php?$query_string; }
404
修改伪静态之后
8、更多用法详见文档 laravel-module更多用法中文文档
9、多模块视图
return view(‘模块名::控制器.方法名’);
return view('admin::manager.create');
来源地址:https://blog.csdn.net/qq_40787608/article/details/129339201