【发布时间】:2020-07-30 14:31:18
【问题描述】:
我为store 和update 方法的自定义验证规则创建了名为“StoreUser”的自定义请求。对于store 方法,当我在邮递员中使用POST 方法时,一切正常。但是对于PATCH/PUT 方法,我发现错误:“此路由不支持 PATCH 方法”。
支持的方法:GET、HEAD"。我的 PATCH 方法的 URL:http://127.0.0.1:8000/api/users/44
使用 debagger,我发现在rules() 方法中自定义Request "StoreUser" 开始返回数组规则时会出现问题。
在我的代码下面。 PATCH/PUT方法只出现错误,POST没问题
API 资源
Route::apiResource('users', 'UserController');
UserController 更新/存储方法
public function store(StoreUser $request)
{
$request->validated();
$password = User::hashPassword($request->get('password'));
$request->merge(['password' => $password]);
$user = User::create($request->all());
return response()->json($user, 201);
}
public function update(StoreUser $request, $id)
{
$request->validated();
$user = User::find($id);
$user->update($request->all());
return response()->json($user, 200);
}
自定义请求 StoreUser
public function rules()
{
return [ // in this place error occurs ONLY IN PATCH/PUT methods
'name' => 'required|min:5',
'email' => 'required|email|unique:users',
'password' => 'required|min:6|max:50'
];
}
【问题讨论】: