简体   繁体   中英

How to get validation error messages in Lumen?

public function register(Request $request){
    $this->validate($request, [
        'username' => 'required|string|unique:users',
        'password' => 'required|string|min:8',
        'first_name' => 'required|string',
        'last_name' => 'required|string',
        'email' => 'required|email|unique:users',
    ]);

    try {
        $user = new User;
        $user->username= $request->input('username');
        $user->password =Hash::make($request->input('password'));
        $user->first_name = $request->input('first_name');
        $user->last_name = $request->input('last_name');
        $user->email = $request->input('email');
        $user->save();
    } catch (Exception $e) {
        return response()->json(['error' => 'Registration Failed'], 403); 
    }
}

This is the typical response get:

"message": "The given data was invalid.",
"status_code": 500

This doesn't tell anything about the exact validation rule that failed. How can I solve this?

You can do something like this:

try {
    $this->validate($request, [
        'username'  => 'required|string|unique:users',
        'password'  => 'required|string|min:8',
        'first_name' => 'required|string',
        'last_name'  => 'required|string',
        'email'     => 'required|email|unique:users',
    ]);
}
catch (\Illuminate\Validation\ValidationException $ex ) {       
    $errors = $ex->errors();
    return response()->json($errors, 422);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM