如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?
Posted
技术标签:
【中文标题】如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?【英文标题】:How to remove "api/" prefix from custom web route in Laravel 8? 【发布时间】:2021-07-26 06:08:33 【问题描述】:我用这个代码修改了我的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
中间件。
为什么在我的路由中添加 api/
前缀?我怎样才能删除它?
谢谢!
=== 更新 ===
我添加了更详细的代码,从Route::prefix('api')
行开始。
【问题讨论】:
【参考方案1】:所以看起来 $this->namespace 是“api”。顺便说一句,你不想在配置文件之外使用 env()。
【讨论】:
我从代码中删除了->namespace($this->namespace)
部分,但结果相同
检查你的 api.php 文件这听起来像是你没有保存文件或者你编辑了错误的文件。
我保存了文件:)
那么什么是api.php内容?
定义了很多路由,但这些都没有。此代码仅存在于 web.php以上是关于如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 @solana/web3.js 从 Solana 中的自定义令牌中删除铸币权限?
如何将控制器中的 Laravel 4.2 beforeFilter 转换为 Laravel 5.2 中的自定义中间件