Есть таблица, в которой поле для 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. Как это можно обойти без костылей?
Нужно отключить инкремент для 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
Продвижение своими сайтами как стратегия роста и независимости