Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.03.2018 02:13:08

Регистрация пользователей

Возник такой вопрос, как реализовать подобную штуку без всяких заморочек и лишнего кода.

Я использую стандартную функцию регистрации и мне нужно сделать следующее.

Допустим я выбрал логин TestLogin но он занят. Как сделать что бы при регистрации в поле user_id записывалось +1.
То есть если пользователь регистрируется под логином TestLogin то в БД должно быть так:

name=TestLogin, user_id=1
name=TestLogin, user_id=2
name=TestLogin, user_id=3

кто может помочь?

Не в сети

#2 25.03.2018 08:26:05

Re: Регистрация пользователей

Проверяешь существование поля name=TestLogin (или какое ты там вводишь)
Если такое поле name существует:
    Ищешь максимальное значение поля user_id, где name = TestLogin
    Увеличиваещшь его на единицу - user_id++
    Записываешь в БД

Не в сети

#3 25.03.2018 10:58:42

Re: Регистрация пользователей

Я понимаю, но как это сделать в стандартной регистрации…

Не в сети

#4 25.03.2018 11:04:16

Re: Регистрация пользователей

В контроллере RegisterController есть метод

    protected function create(array $data){       
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

Вот в нем и делай. Или делай свою регистрацию

Не в сети

#5 25.03.2018 11:06:26

Re: Регистрация пользователей

Сделал…

Не в сети

#6 25.03.2018 12:09:54

Re: Регистрация пользователей

Можно спросить: зачем?! В стандартной поставке есть уникальное поле users.id и не униальное поле users.name. Для чего может понадобиться users.user_id ? Чтобы внести непонятки что именно является идентификатором здесь? smile

ИМХО, необоснованные изменения вносят хаос в программу, начинают вонять и в конце концов убивают её.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#7 25.03.2018 12:12:13

Re: Регистрация пользователей

Если только для конкретного отчёта, то можно сочинить соответствующий запрос или поколдовать с вьюхой вывода. Зачем делать новое поле с таким "говорящим", но нелогичным именем?


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела