返回 laravel Validation 时如何退出?

问题描述 投票:0回答:2

我是 laravel 的新手,我创建了一个注册 API 和用于验证的私有函数,但不显示验证。

那是我的验证函数

`private function validateInfo($request, $toValidate) {

        $validator = Validator::make($request->all(), $toValidate);
        if ($validator->fails()) {
            $errors = $validator->errors()->toArray();
            $values = array_values($errors);
            $arr = [];
            foreach ($values as $errorlst)
                array_push($arr, $errorlst[0]);
            $error = implode(',', $arr);
            return response()->json(['error' => true, 'message' => $error], 400);
            exit;
        }
    }`

switch case 下的调用函数:-

 switch ($request->user_type) :
            case "teacher":
                $this->validateInfo($request, [
                    'first_name' => 'required',
                    'last_name' => 'required',
                    'telephone' => 'required',
                    'country' => 'required',
                    'date_of_birth' => 'required|date',
                    'email' => 'required|email|unique:users',
                    'password' => 'required|min:6',
                ]);
                break;
            case "student" :
                $this->validateInfo($request, [
                    'first_name' => 'required',
                    'last_name' => 'required',
                    'telephone' => 'required',
                    'country' => 'required',
                    'date_of_birth' => 'required|date',
                    'email' => 'required|email|unique:users',
                    'password' => 'required|min:6',
                ]);
                break;
        endswitch;

它没有显示验证错误。任何错误? 谢谢

laravel validation switch-statement laravel-validation
2个回答
0
投票

你需要返回显示喜欢

switch ($request->user_type) :
            case "teacher":
              return $this->validateInfo($request, [
                    'first_name' => 'required',
                    'last_name' => 'required',
                    'telephone' => 'required',
                    'country' => 'required',
                    'date_of_birth' => 'required|date',
                    'email' => 'required|email|unique:users',
                    'password' => 'required|min:6',
                ]);
                break;
            case "student" :
              return $this->validateInfo($request, [
                    'first_name' => 'required',
                    'last_name' => 'required',
                    'telephone' => 'required',
                    'country' => 'required',
                    'date_of_birth' => 'required|date',
                    'email' => 'required|email|unique:users',
                    'password' => 'required|min:6',
                ]);
                break;
        endswitch;

0
投票

您可以创建一个表单请求来验证您的请求。

class UserRequest extends FormRequest
{
    protected function failedValidation(Validator $validator) {
        throw new HttpResponseException(
                    response()->json([
                        "message" => implode(',',$validator->errors()->all())
                    ], 422));
    }

    public function rules() {
        return  [
            'first_name' => 'required',
            'last_name' => 'required',
            'telephone' => 'required',
            'country' => 'required',
            'date_of_birth' => 'required|date',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6',
        ]);
    }
}

请查看docs了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.