Php 没有参数的Laravel资源路由阻塞路由
我正在努力扩展资源restful控制器。我有一个PostController,我在其中创建了一个特殊的函数getNext(),它应该会返回我以后的第一篇文章。现在,当我添加路由时,它不会工作,除非我添加一些(无用的)路由器参数,或者完全更改url:Php 没有参数的Laravel资源路由阻塞路由,php,rest,laravel,laravel-5,Php,Rest,Laravel,Laravel 5,我正在努力扩展资源restful控制器。我有一个PostController,我在其中创建了一个特殊的函数getNext(),它应该会返回我以后的第一篇文章。现在,当我添加路由时,它不会工作,除非我添加一些(无用的)路由器参数,或者完全更改url: Route::group(['prefix' => '/api'], function() { Route::resource('post', 'PostController'); Route::get('post/next', 'Po
Route::group(['prefix' => '/api'], function() {
Route::resource('post', 'PostController');
Route::get('post/next', 'PostController@getNext');
});
-> GET /api/post/next returns 200 OK with no data whatsoever
// result of 'php artisan route:list | grep next'
GET|HEAD | api/post/next | App\Http\Controllers\PostController@getNext
Route::group(['prefix' => '/api'], function() {
Route::resource('post', 'PostController');
Route::get('post/next/{fakeParam?}', 'PostController@getNext');
});
-> GET /api/post/next returns 200 OK with no data whatsoever
-> GET /api/post/next/YOLO returns the correct data !!!
Route::group(['prefix' => '/api'], function() {
Route::resource('post', 'PostController');
Route::get('omg/next', 'PostController@getNext');
});
-> GET /api/omg/next returns the correct data!
现在我不知道在一个足智多谋的控制器中添加一个没有参数的自定义路由有什么不对,但也许你已经找到了答案 这是因为路线的顺序。其中包含一个路由,它是
post/{value}
,用于捕获您的post/next
若要修复,您可以将其翻转为
Route::get('post/next', 'PostController@getNext');
Route::resource('post', 'PostController');
一般来说,将更具体的url放在第一位,最后放在“全方位搜索”的后面。这是由于路由的顺序。其中包含一个路由,它是
post/{value}
,用于捕获您的post/next
若要修复,您可以将其翻转为
Route::get('post/next', 'PostController@getNext');
Route::resource('post', 'PostController');
一般来说,将更具体的url放在第一位,最后放在“全方位搜索”的后面。这是由于路由的顺序。其中包含一个路由,它是
post/{value}
,用于捕获您的post/next
若要修复,您可以将其翻转为
Route::get('post/next', 'PostController@getNext');
Route::resource('post', 'PostController');
一般来说,将更具体的url放在第一位,最后放在“全方位搜索”的后面。这是由于路由的顺序。其中包含一个路由,它是
post/{value}
,用于捕获您的post/next
若要修复,您可以将其翻转为
Route::get('post/next', 'PostController@getNext');
Route::resource('post', 'PostController');
作为一般规则,将更具体的url放在第一位,最后加上“所有内容”。您是否尝试反转另一个?是否尝试反转另一个?是否尝试反转另一个?是否尝试反转另一个?这很有效,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道这是怎么回事,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道这是怎么回事,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道这是怎么回事,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道为什么