为啥不能在 Laravel 5.7 中捕获我定义的 Route 请求的文件 URI?

Posted

技术标签:

【中文标题】为啥不能在 Laravel 5.7 中捕获我定义的 Route 请求的文件 URI?【英文标题】:Why don't catch the requested file URI my defined Route in Laravel 5.7?为什么不能在 Laravel 5.7 中捕获我定义的 Route 请求的文件 URI? 【发布时间】:2019-06-01 14:04:42 【问题描述】:

我的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');

现在我尝试打开这个网址:

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 |

另外:请求的文件不存在。控制器应该是进程和服务它。

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

【问题讨论】:

您能否与php artisan route:list 核对并显示显示的内容? 谢谢,我更新了问题。 【参考方案1】:

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

【讨论】:

【参考方案2】:

请尝试一下,并为路线使用名称,这很有用,并记住调用是 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

【讨论】:

谢谢,但@behnam 的回答解决了这个问题。它被定义为˙post`,但实际上它是一个get 请求。

以上是关于为啥不能在 Laravel 5.7 中捕获我定义的 Route 请求的文件 URI?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我得到一个 404 到 laravel 5.7 公共子文件夹?

Laravel 从 5.5 升级到 5.6 到 5.7:未捕获 ReferenceError: axios is not defined

无法在 laravel 5.7 中定义关系

为啥我不能在 lambda 中捕获这个引用('&this')?

为啥自定义指令不能立即反映其代码的变化

为啥在tailwindcss的自定义类中我不能定义2悬停:?