API 路线 return 404 laravel
API routes return 404 in laravel
我在 laravel 中安装了 https://tenancyforlaravel.com/ 以创建多租户,它适用于网络路由。
我的问题是,当我访问我的 API 时,我在租户域中收到 404 错误。
tenancyforlaravel 文档: https://tenancyforlaravel.com/docs/v3/routes
它说我必须将我所有的 API 放在 api.php
文件中,并用这个中间件将它们包装在一个 Route 组中,所以我将我所有的 API 放在 api.php
文件中,我的所有 API 如下所示:
Route::middleware('tenancy')->group(function () {
Route::name('api.')->namespace('Api')->group(function () {
Route::post('/login', 'AuthController@login')->name('login');
...
});
当我使用 sub.local.test/api/login
访问它时,出现 404 错误。
针对 tenancyforlaravel.com V3 进行了测试,它工作正常。
Route::middleware([
InitializeTenancyByDomain::class,
PreventAccessFromCentralDomains::class
])->prefix('api')->group(function () {
//
Route::name('api.')->namespace('App\Http\Controllers\Api')->group(function () {
Route::post('/login', 'AuthController@login')->name('login');
...
});
将所有 API 路由放入 api.php
中,如下所示
use App\Http\Controllers\AuthController;
Route::group(['prefix' => '/{tenant}',
'middleware' => [InitializeTenancyByPath::class],],
function () {
Route::post('/login', [AuthController::class, 'login'])->name('login');
...
});
由于您没有提到您的租户标识符,我使用 path
作为标识符,因此使用 InitializeTenancyByPath
中间件。使用您想要的任何标识符中间件代替它。
像往常一样使用您的标识符正常访问您的 API 路线。由于此示例使用 path
作为标识符,端点将如下所示:
sub.local.test/api/{tenant}/login
我在 laravel 中安装了 https://tenancyforlaravel.com/ 以创建多租户,它适用于网络路由。
我的问题是,当我访问我的 API 时,我在租户域中收到 404 错误。
tenancyforlaravel 文档: https://tenancyforlaravel.com/docs/v3/routes
它说我必须将我所有的 API 放在 api.php
文件中,并用这个中间件将它们包装在一个 Route 组中,所以我将我所有的 API 放在 api.php
文件中,我的所有 API 如下所示:
Route::middleware('tenancy')->group(function () {
Route::name('api.')->namespace('Api')->group(function () {
Route::post('/login', 'AuthController@login')->name('login');
...
});
当我使用 sub.local.test/api/login
访问它时,出现 404 错误。
针对 tenancyforlaravel.com V3 进行了测试,它工作正常。
Route::middleware([
InitializeTenancyByDomain::class,
PreventAccessFromCentralDomains::class
])->prefix('api')->group(function () {
//
Route::name('api.')->namespace('App\Http\Controllers\Api')->group(function () {
Route::post('/login', 'AuthController@login')->name('login');
...
});
将所有 API 路由放入 api.php
中,如下所示
use App\Http\Controllers\AuthController;
Route::group(['prefix' => '/{tenant}',
'middleware' => [InitializeTenancyByPath::class],],
function () {
Route::post('/login', [AuthController::class, 'login'])->name('login');
...
});
由于您没有提到您的租户标识符,我使用 path
作为标识符,因此使用 InitializeTenancyByPath
中间件。使用您想要的任何标识符中间件代替它。
像往常一样使用您的标识符正常访问您的 API 路线。由于此示例使用 path
作为标识符,端点将如下所示:
sub.local.test/api/{tenant}/login