跨两个字段的唯一验证

时间:2015-09-11 06:24:11

标签: php validation laravel laravel-5

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

我已经围绕这个建立了一些验证规则,但是由于我需要验证它们的全名(我的数据库中的两列),因此我对实现唯一验证感到有点困惑。例如,用户可以创建名为" 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.',
        ]);

1 个答案:

答案 0 :(得分:2)

看一下这个包felixkiss/uniquewith-validator。它包含Laravel的validateUnique规则的变体,允许验证多列UNIQUE索引。