【发布时间】:2017-12-16 13:27:27
【问题描述】:
我有以下两条路线:
路线1:
Route::get(config('api.basepath') . '{username}/{hash}/{object_id}', [
'action' => 'getObject',
'uses' => 'ObjectController@getObject',
]);
和
路线2:
Route::get(config('api.basepath') . 'object-boxes/{object_id}/boxes', function () {
if (Input::get('action') == 'filter') {
return App::call('App\Http\Controllers\FilterController@getFilteredContents');
} else {
return App::call('App\Http\Controllers\ObjectBoxController@show');
}
});
现在,
Route 1 可带或不带 Auth 中间件,而 Route2 位于 Auth 中间件下。
但是,在任何一个调用中,执行控制都将交给 ObjectController@getObject
当我将 Route1 移到 Route2 下方时,每次调用都会转到 ObjectBoxController@show。
我尝试了 Preceed,但没有任何改变。 我该如何解决这个问题
【问题讨论】:
-
为了方便起见,您可以使用
"prefix" => config('api.basepath')定义一个路由组(或使用现有的 api 路由组),而不是对 api 路径进行那种尴尬的串联。
标签: php laravel routing laravel-5.4 laravel-routing