返回laravel Validation时如何退出?

ht4b089n  于 2023-03-04  发布在  其他
关注(0)|答案(2)|浏览(112)

我是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 ($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;

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

qhhrdooz

qhhrdooz1#

您需要返回以获得显示类似

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;
mfpqipee

mfpqipee2#

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

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',
        ]);
    }
}

请查看文档以获取更多信息。

相关问题