Laravel Factory: указание значения поля для Primary Key (типа VARCHAR)

188
19 декабря 2016, 19:28

Есть таблица, в которой поле для Primary Key типа VARCHAR. Использую factory для заполнения таблицы записями. Все работает хорошо, за исключением установки сгенерированного Primary Key. Конфликтов значений поля для Primary Key нету.

Значение для Primary Key генерирую таким образом: $faker->unique()->regexify('[a-zA-Z0-9]{60}').

Моё определение фабрики для модели:

$factory->define(App\Models\Auth\ConfirmationEmail::class, function (Faker\Generator $faker) {
    return [
        'token' => $faker->unique()->regexify('[a-zA-Z0-9]{60}'),
        'email' => $faker->email,
        'counts' => $faker->randomDigit,
        'status' => $faker->randomElement(config('auth.confirm.status')),
    ];
});

Как я понял factory намерянно не задаёт значение поля для Primary Key. Как это можно обойти без костылей?

Answer 1

Нужно отключить инкремент для Primary Key в моделе.

Добавив в модель строки:

    /**
     * Indicates if the IDs are auto-incrementing.
     *
     * @var bool
     */
    public $incrementing = false;

Решение нашел здесь: http://stackoverflow.com/questions/25604605/laravel-eloquent-after-save-id-becomes-0

READ ALSO
Не работает логин через псевдоним в roundcube

Не работает логин через псевдоним в roundcube

Создаю в ISP Manager новый почтовый ящик для roundcube - user@domainru И несколько псевдонимов для него - user0, user1

193
Как отправить данные, которые пришли в гугл-форм?

Как отправить данные, которые пришли в гугл-форм?

Пользователи заполняют гугл-формы и нажимают отправитьФорма не вставлена на сайте

217
Определить ИД пользователя ВК

Определить ИД пользователя ВК

Пользователь со страницы ВК заходит на страницу подписки (е-мейл) на моем сайте, заполняет поля, а при нажатии кнопки "отправить" мой сайт определяет...

244