有没有办法在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
时已确认。但是,Web路由的URL为/users
,api路由的URL为/api/users
。
要获取网络路线网址,我可以route('users.index')
。有没有办法使用路由名称获取api路由的URL?
答案 0 :(得分:3)
您可以通过as
选项为资源控制器的路由指定前缀:
Route::resource('users', 'UserController', [
'as' => 'your.prefix',
'only' => 'index', 'store', 'update', 'destroy'
]);
答案 1 :(得分:0)
在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'));