Как вставить номер строки в базу данных в Laravel - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь вставить ROW NUMBER внутри таблицы через контроллер, но не смог, я пробовал что-то подобное, но с ошибкой,

$data = array(
            'name'=>$request->name, 'email'=>$request->email, 'password'=>$password, 'status'=>1, 'user_id' =>ROW_NUMBER()
        );

Я просто хочу вставить ROW NUMBER таблицы внутри user_id. Также, если это невозможно, мы можем вставить уникальный серийный номер внутри user_id

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 25 апреля 2020

В каждой строке есть столбец с именем 'id', которое уникально и Автоинкремент .

Вы можете передать значение 'id' в 'user_id' как ниже: (но это не очень хорошая идея)

Почему это плохая идея?

Потому что, когда вы удаляете свою последнюю строку (предположим, идентификатор равен 5 ) Ваш следующий идентификатор записи будет 6 , но идентификатор пользователя, который вы получите с помощью приведенного ниже кода, будет 5 . Итак, используйте альтернативный вариант, который я дам вам в следующем.

$last_user = User::orderBy('created_at', 'desc')->first();
$new_user = new User;
...
$new_user->user_id = $last_user->id + 1 ;
$new_user->save(); 

Я понял из комментариев, что вам нужен уникальный идентификатор, и это ваша идея для решения этой проблемы. У меня есть идея получше, и я надеюсь, что это поможет вам.

Вы можете использовать uniqid() метод.

$new_user = new User;
...
$new_user->user_id = uniqid();
$new_user->save(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...