Создайте уникальное имя пользователя на основе первой буквы имени и всей фамилии в Laravel - PullRequest
0 голосов
/ 16 июня 2019

У меня есть база данных с пользователями. Один столбец для имени, один для фамилии. Мне нужно сгенерировать имена пользователей на основе имени и фамилии, и мне нужно следовать этому шаблону:

  1. только первая буква имени
  2. вся фамилия

если комбинация не уникальна, добавьте число в конце фамилии, увеличивая при каждом новом идентичном вхождении.

Как мне добиться этого с помощью eloquent и Laravel?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 16 июня 2019
$user_name = $first_name[0].'_'.$last_name;

$user_count = User::where('first_name', '=', $first_name)
        ->where('last_name', '=', $last_name)->count();
//your unique user_name
$user_name = $user_name.'_'.$user_count+1;

Это всего лишь подход.Вы также можете сделать это любым другим способом.

1 голос
/ 17 июня 2019
// original username
$user_name = "{$first_name[0]}_{$last_name}";


// if you have  a username column
$user_count = User::where('username', $user_name)->count();

// or 

// using first name and last name
$user_count = User::where('first_name', 'LIKE', $first_name[0])
        ->where('last_name', '=', $last_name)
        ->count();

// append digit if exists
if ($user_count > 0) {
  $user_name .= "_$user_count";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...