📅  最后修改于: 2023-12-03 15:02:36.976000             🧑  作者: Mango
在开发过程中,我们有时候需要通过多列来唯一验证数据。比如一个用户注册需要验证用户名、邮箱、手机号是否唯一。
在 Laravel 中,我们可以使用如下方式来实现多列的唯一验证:
// 验证规则
$rules = [
'username' => [
'required',
Rule::unique('users')->where(function ($query) {
return $query->where('email', request('email'))->where('phone', request('phone'));
})
],
'email' => 'required|email|unique:users',
'phone' => 'required|digits:11|unique:users',
];
// 验证错误提示信息
$messages = [
'username.unique' => '该用户名已经被使用。',
'email.unique' => '该邮箱已经被注册。',
'phone.unique' => '该手机号已经被注册。',
];
// 执行验证
validator(request()->all(), $rules, $messages);
以上代码中,通过使用 Rule::unique()
方法来实现多列的唯一验证。其中,where()
方法中传入的闭包函数,用于指定额外的验证条件。
同时,还可以通过 $messages
数组来指定验证失败的错误提示信息。
这样,我们就可以在 Laravel 中方便地实现多列的唯一验证,避免数据重复插入的问题。
以上内容已按 Markdown
格式返回,感谢使用我们的智能写作助手。