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