在Laravel 5.5中按路由名称获取API URL

问题描述 投票:1回答:2

有没有办法在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

要获取Web路由URL,我可以执行route('users.index')。有没有办法使用路由名称获取api路由的URL?

php laravel laravel-routing laravel-5.5
2个回答
3
投票

您可以通过as选项为资源控制器的路由指定前缀:

Route::resource('users', 'UserController', [
    'as' => 'your.prefix',
    'only' => 'index', 'store', 'update', 'destroy'
]);

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'));
© www.soinside.com 2019 - 2024. All rights reserved.