Только что увидел этот вопрос.Возможно, я не понимаю это правильно, но я вижу, как вы повторяете один комментарий в разных формах:
Моя цель - сделать уникальное число в качестве значения идентификатора
Вот чтопервичный индекс "autoincrement" делает для вас по умолчанию.Он уникален, потому что он определен как первичный и автоматически автоинкрементируется, поэтому вы получаете одно числовое значение, назначенное одной строке в таблице.
Предложение 1
Не уверен, почему вы хотите сделатьваша жизнь тяжела, претворяя в жизнь что-то, что уже было реализовано для вас.
Когда вы определяете перенос таблицы с помощью команды artisan с параметром --create, Laravel генерирует перенос таблицы со следующей строкой:
$table->increments('id');
, что означает, что он создает в вашей таблице столбец имени 'id', который является ПЕРВИЧНЫМ и АВТОМАТИЗИРОВАННЫМ для вас.
Предложение 2
Однако, если вы действительно хотите сделать это самостоятельно.Конечно, вы можете.
Массив fillable
предназначен только для «массового назначения».Поэтому, если вы хотите вставить id
при вставке других значений в таблицу, например, вот так:
$request['id'] = 123; //my unique number
User::create($request->all());
Где $ request, очевидно, является экземпляром фасада запроса.Затем ДА, вам нужно поместить идентификатор в массив для заполнения.
Предложение 3
Однако, если вы просто хотите изменить идентификатор отдельно для существующей модели, вы можете сделать это даже безположить его в массив fillable
, например:
$user = User::where('email', $email)->first();
$user->id = 123; // my unique number
$user->save();
Надеюсь, это поможет