通过 Laravel 5.5 中的路线名称获取 API URL
Get an API URL by route name in Laravel 5.5
有没有办法在Laravel 5.5中通过名称获取路由URL时指定前缀?例如,
在routes/web.php
Route::resource('users', 'UserController', ['only' => 'index', 'create', 'edit']);
在routes/api.php
Routes::resource('users', 'UserController', ['only' => 'index', 'store', 'update', 'destroy']);
索引方法的两个路由都具有名称 users.index
,正如调用 php artisan route:list
时确认的那样。但是,网络路由的 URL 是 /users
而 api 路由的 URL 是 /api/users
。
获取网络路由URL,我可以route('users.index')
。有没有办法使用路由名称获取 api 路由的 URL?
您可以通过 as
选项给资源控制器的路由一个前缀:
Route::resource('users', 'UserController', [
'as' => 'your.prefix',
'only' => ['index', 'store', 'update', 'destroy'],
]);
在routes/api.php
中,用前缀api
包装所有路由:
Route::name('api.')->group(function () {
...
});
然后在RouteServiceProvider
,
Route::prefix('api')
->middleware('api')
->namespace($this->namespace.'\Api')
->group(base_path('routes/api.php'));
有没有办法在Laravel 5.5中通过名称获取路由URL时指定前缀?例如,
在routes/web.php
Route::resource('users', 'UserController', ['only' => 'index', 'create', 'edit']);
在routes/api.php
Routes::resource('users', 'UserController', ['only' => 'index', 'store', 'update', 'destroy']);
索引方法的两个路由都具有名称 users.index
,正如调用 php artisan route:list
时确认的那样。但是,网络路由的 URL 是 /users
而 api 路由的 URL 是 /api/users
。
获取网络路由URL,我可以route('users.index')
。有没有办法使用路由名称获取 api 路由的 URL?
您可以通过 as
选项给资源控制器的路由一个前缀:
Route::resource('users', 'UserController', [
'as' => 'your.prefix',
'only' => ['index', 'store', 'update', 'destroy'],
]);
在routes/api.php
中,用前缀api
包装所有路由:
Route::name('api.')->group(function () {
...
});
然后在RouteServiceProvider
,
Route::prefix('api')
->middleware('api')
->namespace($this->namespace.'\Api')
->group(base_path('routes/api.php'));