我有https://tenancyforlaravel.com/安装在拉拉,使多租户,它工作良好的网络路线。
我的问题是,当我访问我的API时,我会在租户域中得到一个404错误。
tenancyforlaravel文档: https://tenancyforlaravel.com/docs/v3/routes
它说,我必须将所有API放在api.php
文件中,并使用这个中间件将它们包装在一个路由组中,因此我将所有API都放在api.php
文件中,并将所有API放在下面的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个错误。
发布于 2022-02-23 07:06:00
测试了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');
...
});
发布于 2022-02-26 17:22:24
将所有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
https://stackoverflow.com/questions/71221784
复制相似问题