Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有参数的Laravel资源路由阻塞路由_Php_Rest_Laravel_Laravel 5 - Fatal编程技术网

Php 没有参数的Laravel资源路由阻塞路由

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

我正在努力扩展资源restful控制器。我有一个PostController,我在其中创建了一个特殊的函数getNext(),它应该会返回我以后的第一篇文章。现在,当我添加路由时,它不会工作,除非我添加一些(无用的)路由器参数,或者完全更改url:

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放在第一位,最后加上“所有内容”。

您是否尝试反转另一个?是否尝试反转另一个?是否尝试反转另一个?是否尝试反转另一个?这很有效,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道这是怎么回事,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道这是怎么回事,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道这是怎么回事,谢谢!另一个答案之前解释过我,但答案被删除了,我无法解决。。。不知道为什么