为了账号安全,请及时绑定邮箱和手机立即绑定

如果用户 emal 重复,我如何捕获并返回 json

如果用户 emal 重复,我如何捕获并返回 json

PHP
慕慕森 2021-06-18 15:06:19
如果数据库中有重复的用户电子邮件,我想返回响应我已经尝试使用子句“where”检查电子邮件,但返回的是 views/welcome.blade.php我希望json响应为{成功:错误,错误:“电子邮件已注册”}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 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

拉维尔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


查看完整回答
反对 回复 2021-06-25
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信