📅  最后修改于: 2023-12-03 15:23:12.438000             🧑  作者: Mango
在 Laravel 验证中,我们通常使用 unique
规则来检查某个 column 是否唯一。但是在某些情况下,我们需要同时检查两个 column 是否唯一。这时候,需要使用 Rule::unique
。
Rule::unique('table')->where(function ($query) use ($request) {
return $query->where('column1', $request->input('column1'))
->where('column2', $request->input('column2'));
})
table
: 要检查唯一性的表名。column1
和 column2
: 要检查唯一性的字段名。$request->input('column1')
和 $request->input('column2')
: 提交表单中的值。use ($request)
: 在闭包函数中使用 $request
变量。例如,在注册页面中,我们需要检查邮箱和手机号是否唯一。我们需要在控制器中的 rules
函数中添加以下规则:
use Illuminate\Validation\Rule;
public function rules()
{
return [
'email' => [
'required',
'email',
Rule::unique('users')->where(function ($query) {
return $query->where('phone', request()->input('phone'));
}),
],
'phone' => [
'required',
Rule::unique('users')->where(function ($query) {
return $query->where('email', request()->input('email'));
}),
],
];
}
这样就可以同时检查邮箱和手机号是否唯一了。