laravel验证唯一规则

时间:2018-08-29 08:42:42

标签: php laravel

我尝试将Illuminate \ Validation用作独立库,但由于唯一规则而失败。错误为:未捕获的RuntimeException:未设置状态验证程序。 这是我的代码:

b

2 个答案:

答案 0 :(得分:0)

尝试一下:::

$this->validate($request, 
    ['email' => 'required|exists:users,email'],
    ['email.exists' => 'You are not registered User. Please register.']
); 

用户 =您的表名

电子邮件 =您的表格字段名称

答案 1 :(得分:0)

unique规则旨在检查该值在数据库中是否唯一。验证器检查数据库中“唯一性”的方式是使用“状态验证器”。您没有提供任何状态验证器,所以这就是您看到此错误的原因。要提供状态验证器,您需要添加此额外的代码

$presenceVerifier = new MyPresenceVerifier();
$factory->setPresenceVerifier($presenceVerifier);

其中MyPresenceVerifier\Illuminate\Validation\PresenceVerifierInterface合同的实现。由于您将验证程序用作独立库,因此您将需要为所使用的任何数据库创建自己的状态验证程序实现。您可以在官方的Laravel存储库中找到实现示例:

https://github.com/laravel/framework/blob/master/src/Illuminate/Validation/DatabasePresenceVerifier.php