我需要验证用户表中没有重复组合的(firstname和lastname)。例如: - firstname = dc lastname = patel已存在于表中。我需要在下次阻止相同的输入。
答案 0 :(得分:2)
最后,我有完美的解决方案。
$validationRule = ['first_name' => 'required','last_name'=>'required'];
$validationMsg = ['first_name.required' => 'First Name is required', 'last_name.required' => 'Last Name is required'];
$validation = Validator::make(['first_name' => $firstName, 'last_name' => $lastName], $validationRule, $validationMsg);
$validation->after(function ($validation) use ($firstName, $lastName) {
$checkName = User::where('first_name', $firstName)->where('last_name', $lastName)->get();
if (count($checkName) > 0) {
$validation->errors()->add('first_name', 'User already exists, please enter another user.');
}
});
if ($validation->fails()) {
foreach ($validation->errors()->all() as $error) {
$message = $error;
}
return response(\Helpers::makeAjaxResponse(false, $message));
} else {
//Save record code here
}
答案 1 :(得分:0)
如果数据库提供了这种可能性,你可以使用simular的东西在表中复合UNIQUE键。
http://dev.mysql.com/doc/refman/5.7/en/multiple-column-indexes.html
答案 2 :(得分:0)
使用laravel唯一验证规则 如何允许具有相同姓氏但不是名字的用户进行注册?
unique.firstname
答案 3 :(得分:0)
首先使用给定的名字和姓氏检查记录计数。 如果计数为“0”,请保存记录或显示消息。
以下是一些代码提示
$users = DB::table('users')
->where(['firstname' => 'dc', 'lastname' => 'patel'])
->count();
if($users === 0) {
// save the record.
} else {
// Show message
}
答案 4 :(得分:0)
从Laravel 5.5开始,您可以使用优雅的Rule类,如:
use Illuminate\Validation\Rule;
// ...
$firstNameUniqueRule = Rule::unique('users')->where('last_name', request()->get('last_name', ''));
$rules = [
'first_name' => ['required', $firstNameUniqueRule],
'last_name' => 'required',
];