Php 跨两个字段的唯一验证

Php 跨两个字段的唯一验证,php,validation,laravel,laravel-5,Php,Validation,Laravel,Laravel 5,我正在Laravel5中建立一个网站,用户可以通过选择名字和姓氏来创建一个角色 我已经围绕这一点建立了一些验证规则,但在实现唯一验证方面有点困难,因为我需要它来验证他们的全名,这在我的数据库中有两列。例如,用户可以创建一个名为“Jon Snow”的角色,但验证需要检查这两个字段的组合是否唯一,因为其他人可能想要创建角色“Jon Doe” 我现在意识到,当我写这篇文章的时候,我可以将两个专栏合并成一个,然后进行验证 但在我走这条路线之前,有没有办法像我需要的那样跨两个字段运行验证 以下是我的验证:

我正在Laravel5中建立一个网站,用户可以通过选择名字和姓氏来创建一个角色

我已经围绕这一点建立了一些验证规则,但在实现唯一验证方面有点困难,因为我需要它来验证他们的全名,这在我的数据库中有两列。例如,用户可以创建一个名为“Jon Snow”的角色,但验证需要检查这两个字段的组合是否唯一,因为其他人可能想要创建角色“Jon Doe”

我现在意识到,当我写这篇文章的时候,我可以将两个专栏合并成一个,然后进行验证

但在我走这条路线之前,有没有办法像我需要的那样跨两个字段运行验证

以下是我的验证:

public function store(Request $request)
    {
        $character = new Characters;

         $validator = Validator::make($request->all(), [
            'firstname' => 'required|between:2,15',
            'lastname' => 'required|between:2,15',
        ], [
            'firstname.required' => 'You need to provide a first name!',
            'lastname.required' => 'You need to provide a last name!',
            'firstname.between' => 'The first name must be between :min - :max characters long.',
            'lastname.between' => 'The last name must be between :min - :max characters long.',
        ]);

看看这个包裹。它包含Laravel的
validateUnique
规则的变体,允许验证多列唯一索引。

只是一个想法,在验证之后

$firstName = Input::get('firstname');
$lastName = Input::get('lastname');

$whereStatement = ['firstname' => $firstName, 'lastname' => $lastname];
现在使用查询

$user = DB::table('yourtablename')->where($whereStatement)->count()

if ($user > 1){
 //then redirect back user saying the name must be uniqe
}
else{
//save data to database
}

你是说你想让你的
firstname
lastname
的组合在你的数据库中独一无二?是的,这正是我想要做的。