为什么不在 Laravel 5.7 中捕获请求的文件 URI 我定义的路由?

Why don't catch the requested file URI my defined Route in Laravel 5.7?

我的 routes/api.php 文件中有此代码:

Route::group(['middleware' => 'auth:api'], function () {
  Route::prefix('photoalbum')->group(function() {
    Route::prefix('image')->group(function() {
      Route::post('download/{albumId}/{size}/{filename}',
                  'PhotoalbumImageController@download');
      // ...
    });
  });
});

Route::fallback('HomeContorller@index');

现在我试着打开这个URL:

http://myproject.test/api/photoalbum/image/download/1/xs/dog.jpg

...我从 HomeController@index 函数得到结果。其他路线工作正常。

更新

php artisan route:list得到正确的路由列表,包含这个:

|        | POST     | api/photoalbum/image/download/{albumId}/{size}/{filename}      |      | App\Http\Controllers\PhotoalbumImageController@download          | api,auth:api,auth |

另外:请求的文件不存在。控制器应该处理并服务它。

为什么不捕获我定义的路由的请求并将其发送到 PhotoalbumImageController@download 函数,我该如何解决?

您定义的路由类型是 POST,您正在尝试通过 GET 访问它。 将您的路线更改为 Route::get 可以解决您的问题。

请试一试,使用路由名称很有用,记住调用是 GET、POST、PUT 等

Route::group(['middleware' => 'auth:api','prefix'=>'photoalbun/image'], function () {
Route::match(['post','get'],'/download/{albumId}/{size}/{filename}','PhotoalbumImageController@download')->name('api.photoalbun.image.download');
    });

要查看所有路线,您可以使用

php artisan route:list