Laravel 8验证时报错validateRequired|min方法不存在该如何解决?
错误原因
Laravel 验证规则支持两种书写格式:
- 字符串格式:多个规则用
|分隔,例如'required|min:8' - 数组格式:每个规则作为数组的独立元素,通常用来搭配自定义规则类实例使用
你这里混用了两种格式:把|分隔的多个规则作为单个元素放在规则数组里,Laravel 会把整个required|min:8字符串当成单个验证方法名解析,自然找不到对应的validateRequired|min方法,就抛出了这个异常。
修复方法
把规则数组中用|分隔的规则拆分为独立的数组元素即可,修改后的验证代码如下:
public function change_password(Request $request) { $input = $request->all(); $userid = Auth::guard('api')->user()->id; $validator = $request->validate([ 'old_password' => 'required', // 拆分|分隔的规则为独立数组元素 'new_password' => ['required', 'min:8', new PasswordRule()], 'confirm_password' => ['required', 'same:new_password', new PasswordRule()] ]); // 后续逻辑
如果你的规则里没有自定义规则类,也可以直接用字符串格式,不需要写数组,例如'new_password' => 'required|min:8'。
内容的提问来源于stack exchange,提问作者S.M_Emamian
相关产品推荐
相关产品推荐

