【发布时间】:2021-09-12 16:03:46
【问题描述】:
我正在尝试验证表单中的字段并使用唯一规则
$validator = Validator::make($request->all(),[
'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->where(function ($q) {
$q->whereNotNull('password');
}) ],
'password' => ['required', 'string', 'min:5', 'confirmed','min:8'],
'password_confirmation' => ['min:8']
]);
收到此错误:
消息:“调用未定义的方法 Illuminate\Contracts\Validation\Rule::unique()",
使用了这个命名空间:
使用 Illuminate\Contracts\Validation\Rule;
请给点建议,谢谢
【问题讨论】:
-
你使用哪个版本的 laravel?因为您标记了版本 5 和 4,所以两者都没有像
Rule这样的东西。规则(以您在示例中使用的语法)在 5.3 中引入。 -
@AdrianKokot:版本是 7.30.4
-
@user3653474
Contract中的任何内容都是interface。小心点……