【发布时间】:2020-04-12 09:28:28
【问题描述】:
在我的 laravel 应用程序中,我将 apiResponse 用于路由。但是,在发出 api 请求时,我收到了 404 not found 错误。这是一个例子:
Route::group(['prefix' => 'v1'], function() {
/**
* Categories
*/
Route::group([ 'prefix' => 'categories' ], function() {
Route::apiResource('/', 'v1\CategoryController')->except(['destroy', 'show']);
Route::get('/edit/{category}', 'v1\CategoryController@edit');
// Route::patch('/{category}', 'v1\CategoryController@update');
Route::patch('/status/{category}/{status}', 'v1\CategoryController@status');
});
});
当我通过patch 方法访问update api 时,它返回404 not found
CategoryController.php
...
use Illuminate\Http\Request;
use App\ApiModels\v1\Category;
class CategoryController extends Controller
{
...
public function update(Request $Request, $category)
{
# models
$Category = new Category();
# accessing methods
if(($querySubmit = $Category->update($Request->all(), $category))['success'] == false)
{
return $this->response([
'class' => 'alert-danger'
], false, $this->parentErrors($querySubmit));
}
return $this->response([], true, 'Category has been saved successfully.');
}
...
}
但是,如果我取消注释 patch 路由的 patch 方法,那么它就会开始工作。因为它开始使用新路由,完全忽略了 restful 控制器路由。
我不想包含额外的代码,特别是对于 laravel 已经提供的相同功能。
如何解决这个问题...?
请帮忙,谢谢。
【问题讨论】:
标签: laravel api http-status-code-404