laravel - 如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?
问题描述
我RouteServiceProvider.php
用这段代码修改了我的:
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
// ...
if (env('THEME_NAME') !== null) {
try {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/client-specific/' . env('THEME_NAME') . '/api.php'));
} catch (\Throwable $th) {
// ...
}
try {
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/client-specific/' . env('THEME_NAME') . '/web.php'));
} catch (\Throwable $th) {
// ...
}
}
});
}
然后在routes/client-specific/' . env('THEME_NAME') . '/web.php
文件中我写了这段代码:
<?php
use Illuminate\Support\Facades\Route;
Route::get('{local}/cs/list', [ClientSpecific\CustomController::class, 'listPublic']);
然后我做了一个php artisan route:list
,我在列表中得到了这条路线:
api/{local}/cs/list
在 RouteServiceProvider 中,我web
为此路由文件使用中间件。
为什么要在我的路由中添加 Laraverapi/
前缀?我怎样才能删除它?
谢谢!
=== 更新 ===
我加了更详细的代码,开始上Route::prefix('api')
线了。
解决方案
所以看起来 $this->namespace 是“api”。顺便说一句,您不想在配置文件之外使用 env() 。
推荐阅读
- php - Typo 8.7 / External Import - 在自定义 extbase 扩展中使用 CLI 中的外部导入导入时出错
- ios - 如何隐藏/禁用“我的 Mac(专为 iPad 设计)”构建目标 - Xcode 13
- sql - 尽管“冲突”或更新现有行,但 postgresql 选项都插入新行
- wordpress - 联系表格 7 将引用页面标记为垃圾邮件
- laravel-livewire - 为什么在组件的调用方法中项目列表为空?
- python - math.prod() 在谷歌 colab 笔记本中不起作用
- java - 如何使用 Java 执行 Shell 命令并在执行命令时直接打印输出
- .net - 生成的 nuget 包中显示了不受支持的依赖版本
- javascript - ExtJS - 具有混合值类型的模型字段
- python - python 3 - 函数练习下载图像(导入 urllib.request + 随机)