为什么不在 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
我的 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