Php 基于用户类型设置laravel验证器

Php 基于用户类型设置laravel验证器,php,laravel,Php,Laravel,如何根据用户类型设置验证器?我试过了,但效果不好 按用户类型添加规则数组,最后放入规则 public function register(Request $request){ $validator = \Validator::make($request->all(), [ 'first_name' => 'required|min:3', 'email' => 'required|email|max:255|unique:users'

如何根据用户类型设置验证器?我试过了,但效果不好

按用户类型添加规则数组,最后放入规则

public function register(Request $request){


    $validator = \Validator::make($request->all(), [
        'first_name' => 'required|min:3',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|min:6|confirmed',
        'password_confirmation' => 'required',
        'address' => 'required',
        'phone_number' => 'required',
    ]);

    if($request->user_type == 1 ){
        $validator = \Validator::make($request->all(), [
                'dob' => 'required'
            ]);
    }

    if($request->user_type == 2 ){
        $validator = \Validator::make($request->all(), [
                'doctor_practice' => 'required'
            ]);
    }

    // then, if it fails, return the error messages in JSON format
    if ($validator->fails()) {    
        return response()->json($validator->messages(), 401);
    }

按用户类型添加规则数组,最后放入规则

public function register(Request $request){


    $validator = \Validator::make($request->all(), [
        'first_name' => 'required|min:3',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|min:6|confirmed',
        'password_confirmation' => 'required',
        'address' => 'required',
        'phone_number' => 'required',
    ]);

    if($request->user_type == 1 ){
        $validator = \Validator::make($request->all(), [
                'dob' => 'required'
            ]);
    }

    if($request->user_type == 2 ){
        $validator = \Validator::make($request->all(), [
                'doctor_practice' => 'required'
            ]);
    }

    // then, if it fails, return the error messages in JSON format
    if ($validator->fails()) {    
        return response()->json($validator->messages(), 401);
    }

使用嵌入式验证机制更好、更正确

$rules = [
    'first_name' => 'required|min:3',
    'email' => 'required|email|max:255|unique:users',
    'password' => 'required|min:6|confirmed',
    'password_confirmation' => 'required',
    'address' => 'required',
    'phone_number' => 'required',
];

if($request->user_type == 1 ){
    $rules['dob'] =  'required';
}else if($request->user_type == 2 ){
    $rules['doctor_practice'] =  'required';
}

$validator = \Validator::make($request->all(), $rules);
if ($validator->fails()) {    
    return response()->json($validator->messages(), 401);
}
这在中进行了描述

如果:另一个字段,值

如果另一个字段等于任何值,则验证中的字段必须存在且不为空


使用嵌入式验证机制更好、更正确

$rules = [
    'first_name' => 'required|min:3',
    'email' => 'required|email|max:255|unique:users',
    'password' => 'required|min:6|confirmed',
    'password_confirmation' => 'required',
    'address' => 'required',
    'phone_number' => 'required',
];

if($request->user_type == 1 ){
    $rules['dob'] =  'required';
}else if($request->user_type == 2 ){
    $rules['doctor_practice'] =  'required';
}

$validator = \Validator::make($request->all(), $rules);
if ($validator->fails()) {    
    return response()->json($validator->messages(), 401);
}
这在中进行了描述

如果:另一个字段,值

如果另一个字段等于任何值,则验证中的字段必须存在且不为空


是的,但是拼写错误我做了,不过谢谢你们的支持。是的,但是拼写错误我做了,不过谢谢你们的支持。