我的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
函数,该如何解决?
答案 0 :(得分:2)
您定义的路由类型为POST,并且您尝试通过GET访问。
将路线更改为Route::get
可解决您的问题。
答案 1 :(得分:0)
请尝试此操作,并为路由使用名称,这很有用,并记住呼叫是否为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