提交表单时出现Method Illuminate\Validation\Validator::validateNullablerequired不存在错误求助
Hey,这个问题我太熟了!你遇到的Method Illuminate\Validation\Validator::validateNullablerequired does not exist错误,根源其实是验证规则的拼写失误。
问题根源
这个错误的核心原因很直白:Laravel的验证规则库里根本没有nullablerequired这个规则。你大概率是想同时使用nullable和required这两个独立的验证规则,但不小心把它们连写成了一个单词。
这里顺便补充下两个规则的作用,避免混淆:
nullable:允许字段的值为null或者不提交该字段required:强制字段必须存在且不能为null、空字符串、空数组等空值
通常这两个规则不会直接一起使用(因为required会覆盖nullable的允许为空特性),你可能是误操作把它们拼在了一起。
解决方案
只需要修正验证规则的写法即可,根据你的业务需求选择对应的正确规则组合:
场景1:字段可以为空,但如果填写了就必须符合格式要求
比如允许用户选填邮箱,但填了就必须是合法邮箱:$validationRules = [ 'email' => 'nullable|email|max:255', ];场景2:字段必须填写,不能为空
直接使用required规则,搭配其他验证条件:$validationRules = [ 'name' => 'required|string|max:255', ];场景3:字段是否必填取决于其他字段的值
比如当user_type为admin时,admin_code必须填写,否则可以为空:$validationRules = [ 'admin_code' => 'required_if:user_type,admin|nullable|string', ];
最后,一定要仔细检查所有验证规则的拼写,Laravel的验证规则都是小写且用竖线|分隔多个规则,不要把规则名连写在一起哦!
内容的提问来源于stack exchange,提问作者Nasir Khan
相关产品推荐
相关产品推荐

