繁体   English   中英

跨两个领域的唯一验证

[英]Unique validation across two fields

我正在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.',
        ]);

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

只是一个想法,经过验证,

$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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM