Laravel: route() возвращает ссылку на API, ожидаю ссылку на web-версию
В шаблоне используется
route("company.index")
который превращался в /company. После добавления роутов для API, ссылка поменялась на /api/company, хотя я все также ожидаю ссылку /company.
RouteServiceProvider.php:
public function boot()
{
$this->routes(function () {
Route::middleware('web')
->group(base_path('routes/web.php'));
Route::prefix('api')
->middleware('api')
->group(base_path('routes/api.php'));
});
}
web.php:
Route::middleware("auth")->group(function () {
Route::resource("/company", \App\Http\Controllers\CompanyController::class);
});
api.php:
Route::middleware('auth:api')->group(function () {
Route::apiResource("/company", \App\Http\Controllers\CompanyControllerApi::class);
});
Как можно разграничить эти два вида роутов, чтобы route("company.index") и подобные всегда вели на web-версию (не API). Либо "отключить" генерацию для API.
Ответы (1 шт):
Автор решения: E_K
→ Ссылка
Добавьте первым параметром ['as' => 'api.'] в group.
Route::group(
[
'middleware' => ['auth:api'],
'as' => 'api.'
],
function () {
Route::apiResource("/company", \App\Http\Controllers\CompanyControllerApi::class);
}
);
Для web будет route("company.index"), api route("api.company.index").