我有一个包含用户的数据库。一列用于名字,一列用于姓氏。我需要根据名字和姓氏生成用户名,并且需要遵循以下模式:
如果组合不是唯一的,则在姓氏的末尾添加一个数字,在每次出现相同的新事件时递增。
我该如何用雄辩的Laravel做到这一点?
谢谢!
答案 0 :(得分:2)
$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 :(得分:1)
// 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";
}