当数据无效时,Laravel请求验证404

时间:2019-04-06 10:17:11

标签: laravel validation

我在Laravel中进行请求验证时遇到麻烦,当请求数据通过验证时,一切正常,但是数据无效,服务器响应为404

UserRequest

public function authorize()
{
    return true;
}

public function rules()
{
    return [
         'name' => 'sometimes|required|unique:users,Name|min:5|max:30'
    ];
}

UserController

public function update(UserRequest $request, $id)
{
    $token = JWTAuth::getToken();
    $tokenData = JWTAuth::getPayload($token)->toArray();
    if ($request->name != null) {
        if (User::where('id', $tokenData['idUser'])->update(['Name' => $request->name])) {
            $status = true;
        } else {
            $status = false;
        }
    }

    return response()->json(['status' => $status]);
}

1 个答案:

答案 0 :(得分:0)

尝试一下

public function update(UserRequest $request, $id)
{
    $token = JWTAuth::getToken();
    $tokenData = JWTAuth::getPayload($token)->toArray();
    $validated = $request->validated();
    if ($validated) {
        if (User::where('id', $tokenData['idUser'])->update(['Name' => $request->name])) {
            $status = true;
        } else {
            $status = false;
        }
        return response()->json(['status' => $status]);
    }
    else {
        return redirect()->back()->withErrors($validated);
     }        
}

希望这会有所帮助:)