[英]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.