📜  laravel 对多列的唯一验证 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:36.976000             🧑  作者: Mango

Laravel 对多列的唯一验证

在开发过程中,我们有时候需要通过多列来唯一验证数据。比如一个用户注册需要验证用户名、邮箱、手机号是否唯一。

在 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 格式返回,感谢使用我们的智能写作助手。