Laravel检查用户是否存在

时间:2017-02-23 13:12:11

标签: laravel validation

我正在使用Laravel 5.2.45

我正在尝试为我的应用程序创建新用户。 在创建用户之前,我需要检查是否存在具有相同名称,姓氏和生日的用户。 我怎么能在laravel中做到这一点?

3 个答案:

答案 0 :(得分:5)

具有相同姓名,姓氏和生日

的用户
$duplicate_user = \DB::table('users')
    ->where('name', 'LIKE', $new_name)
    ->where('surname', 'LIKE', $new_surname)
    ->where('birthday', '=', $new_birthday)
    ->first();

if($duplicate_user) {
    return response('This user already exists', 422);
}

答案 1 :(得分:0)

Laravel验证Docs

  

独特:表,列,除了,idColumn

Validator::extend('and_unique', function($attribute, $value, $parameters, $validator) {
$result = DB::table($parameters[0])->where(function($query) use ($attribute, $value, $parameters) {
    $query->where($attribute, '=', $value) // where name = value
        ->orWhere($parameters[1]), '=', $value); // where surname = value
        ->orWhere($parameters[2]), '=', $value); // where birthday = value
})->first();

return $result ? false : true;
});

'name' => 'required|and_unique:users,surname,birthday'

答案 2 :(得分:-1)

$siteUser = new SiteUser;

foreach (['birth_date', 'first_name', 'last_name'] as $key) {
$siteUser->$key = $request->$key;
}