laravel - 向laravel添加超过1个路由文件?
问题描述
我可以看到这个RouteServiceProvider.php
:
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
但是当我尝试添加一个时:
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('themes/myTheme/web.php'));
然后它不会拾取第二个web.php
文件。但是如果我删除第一个web.php
引用,那么第二个引用就会被拾取。所以看起来 Laravel 只想要一个web.php
。但是,即使这样也行不通:
Route::middleware('myTheme')
->namespace($this->namespace)
->group(base_path('themes/myTheme/web.php'));
有没有办法让第二个 web.php 文件工作?
我已经尝试/考虑过:
- 通过包含主 web.php 文件中的 web.php 文件的解决方法。但如果路线提供商处理它,我更喜欢它。
有任何想法吗?
更新 1
我试过这个,但它似乎不适用于 Laravel 8:
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(function ($router) {
require base_path('routes/admin.php');
require base_path('routes/category.php');
});
}
解决方案
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('storage/routes/web2.php')); // 'themes/myTheme/web.php' in your case
这将起作用,但不要忘记php artisan route:cache
在更改后运行命令
推荐阅读
- c++ - 使用 cmake 构建时出现对 `boost::archive::archive_exception::..... 的未定义引用
- c++ - 如何使用 Switch 语句将单词转换为 ICAO 字母表?
- c++ - 找不到权限被拒绝 opencv/lib
- http - 如何使用 NewSingleHostReverseProxy 处理错误
- php - 无需 cli 即可运行 Ratchet php 服务器
- javascript - 如何在 Ember 中使用 googleapis 节点包
- reactjs - 将带有嵌入式js变量的jsx推送到数组的正确方法是什么
- elasticsearch - JHipster 未添加字段搜索功能
- ms-access - 无法打开 MS Access 365 数据库
- python - 如何使用 oracle 作为数据库在 django 中设置多个模式?