Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Возник такой вопрос, как реализовать подобную штуку без всяких заморочек и лишнего кода.
Я использую стандартную функцию регистрации и мне нужно сделать следующее.
Допустим я выбрал логин TestLogin но он занят. Как сделать что бы при регистрации в поле user_id записывалось +1.
То есть если пользователь регистрируется под логином TestLogin то в БД должно быть так:
name=TestLogin, user_id=1
name=TestLogin, user_id=2
name=TestLogin, user_id=3
Не в сети
Проверяешь существование поля name=TestLogin (или какое ты там вводишь)
Если такое поле name существует:
Ищешь максимальное значение поля user_id, где name = TestLogin
Увеличиваещшь его на единицу - user_id++
Записываешь в БД
Не в сети
Не в сети
В контроллере RegisterController есть метод
protected function create(array $data){
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Вот в нем и делай. Или делай свою регистрацию
Не в сети
Не в сети
Можно спросить: зачем?! В стандартной поставке есть уникальное поле users.id и не униальное поле users.name. Для чего может понадобиться users.user_id ? Чтобы внести непонятки что именно является идентификатором здесь?
ИМХО, необоснованные изменения вносят хаос в программу, начинают вонять и в конце концов убивают её.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Если только для конкретного отчёта, то можно сочинить соответствующий запрос или поколдовать с вьюхой вывода. Зачем делать новое поле с таким "говорящим", но нелогичным именем?
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Страницы 1