【问题标题】:message: Call to undefined method Illuminate\Contracts\Validation\Rule::unique()消息:调用未定义的方法 Illuminate\Contracts\Validation\Rule::unique()
【发布时间】: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。小心点……

标签: laravel laravel-7


【解决方案1】:

您使用了错误的命名空间。替换

use Illuminate\Contracts\Validation\Rule;

use Illuminate\Validation\Rule;

【讨论】:

    猜你喜欢
    • 2018-07-03
    • 2020-01-04
    • 2018-06-03
    • 1970-01-01
    • 2020-02-08
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多