Как я могу поймать и вернуть JSON, если пользователь Emal является дубликатом - PullRequest
0 голосов
/ 20 мая 2019

Я хочу вернуть ответ, если в базе данных есть дубликат электронной почты пользователя.

Я уже пытаюсь проверить электронную почту с помощью пункта "где", но возвращаемся к views / welcome.blade.php

я хочу, чтобы ответ json был {success: false, ошибка: "электронная почта уже зарегистрирована"}

public function register(Request $request)
{
    // VALIDATION FIELD
    $this->validate($request, [
        'name'          => 'required',
        'company_name'  => 'required',
        'email'         => 'required|email|max:255|unique:users',
        'password'      => 'required|min:8'
    ]);

    try {

        // DATA REQUEST
        $data = [
            'name'          => $request->input('name'),
            'company_name'  => $request->input('company_name'),
            'email'         => $request->input('email'),
            'password'      => Hash::make($request->input('password'))
        ];

        User::create($data);

        // IF SUCCESS RETURN SUCCESS => TRUE
        return response()->json([
            'success' => true,
            'data'  => $data
        ]);

        if(User::where('email', '=', $data->email )->exists()){
            return response()->json([
                'success' => false,
                'error'  => 'Email already registered, try another email'
            ]);
        }else{
            // CREATE DATA
            User::create($data);

            // IF SUCCESS RETURN SUCCESS => TRUE
            return response()->json([
                'success' => true,
                'data'  => $data
            ]);
        }


    }catch (\Throwable $e) {
        // IF SUCCESS RETURN SUCCESS => False
        return response()->json([
            'success'   => false,
            'error'     => "Error On Line {$e->getLine()}, <br>Message:<br>{$e->getMessage()}",
        ]);
    }
}

1 Ответ

0 голосов
/ 20 мая 2019

Ларавел 5:

Используйте ниже процесс проверки вручную:

        // use Validator facade after namespace & replace below line of code 

        //$this->validate($request, [
        //    'email'         => 'required|email|max:255|unique:users'
        //]); 

        $validator = Validator::make($request->all(), [
            'email'         => 'required|email|max:255|unique:users'
        ]);

        if ($validator->fails()) {
            $errors = $validator->errors();
            if ($errors->has('email')) {

               # Return json response with first error.
               return response()->json([
                  'success' => false,
                  'error'   => $errors->first('email')
               ]);

            }
        }

Посетите больше Ссылка на: Laravel Doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...