首页 > 解决方案 > 如何在注册验证器中为两个不同的表创建唯一列

问题描述

我正在创建两个不同的注册(用于管理员和用户)。但是验证器中的 username->unique 仅适用于表用户。

protected function validator(array $data)
{
    return Validator::make($data, [
        'firstname' => ['required', 'string', 'max:255', 'min:3'],
        'middlename' => ['required', 'string', 'max:255', 'min:3'],
        'lastname' => ['required', 'string', 'max:255', 'min:3'],
        'username' => ['required', 'string', 'max:255', 'min:3', 'unique:users'],
        'password' => ['required', 'string', 'min:6', 'confirmed'],
    ]);
}

从 users 表验证用户注册的唯一用户名,并从 admins 表验证管理员注册的唯一用户名。

标签: laravel

解决方案


验证器应该只验证数据,将它与路由等概念结合起来是不好的......

我将创建一个自定义验证器类,它将表名作为参数。

然后,您可以在控制器中使用正确的表参数实例化该验证器(它将了解路由、请求等...)


推荐阅读