在Laravel5.7中验证阵列上的重复值 [英] Verify duplicate values on the array in Laravel5.7
本文介绍了在Laravel5.7中验证阵列上的重复值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想验证数据库中的电子邮件地址是否重复? 这是我的代码:
I want to verify if email address in my database is duplicate or not? Here is my codes :
'users.*.email'=> ['required','unique:users','email']
这是我的控制器
UsersController
public function MassStore(MassStoreUserRequest $request)
{
$inputs = $request->get('users');
return redirect()->route('admin.users.index');
}
这是我的POST数据(post data($ inputs)将如下发送):
and this is my POST data (post data($inputs) will send like as below) :
'users' => [
[
'name' => 'Ken Tse',
'email' => 'ken@gamil.com',
'password' => 'ken12ken34ken',
],
[
'name' => 'Ken Tse',
'email' => 'ken@gamil.com', //duplicate, so need trigger error
'password' => 'ken12ken34ken',
],
]
这是我得到的错误:
[2019-12-10 15:51:16] local.DEBUG:PDOException:SQLSTATE [23000]:违反完整性约束:1062键'
users_email_unique
'的重复条目'ken@gamil.com
'
[2019-12-10 15:51:16] local.DEBUG: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '
ken@gamil.com
' for key 'users_email_unique
'
MassStoreUserRequest
MassStoreUserRequest
public function rules()
{
return [
'users' => ['required','array'],
'users.*.name' => ['required'],
'users.*.email' => ['required','unique:users','email'],
'users.*.password' => ['required','min:8']
];
}
推荐答案
只需在电子邮件关键字(例如:
Just use the distinct with your email keyword such as :
public function rules()
{
return [
'users' => ['required','array'],
'users.*.name' => ['required'],
'users.*.email' => ['required','unique:users','email', 'distinct'],
'users.*.password' => ['required','min:8']
];
}
这篇关于在Laravel5.7中验证阵列上的重复值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文