Я довольно глубоко в кроличью нору на этом. Этот вопрос на самом деле является частью более крупного вопроса, связанного с корректной работой моего приложения Laravel. Вот ссылка на другой вопрос, если вы хотите узнать больше о моих проблемах: Модель, ошибка базы данных в Laravel.
Итак, теперь я пытаюсь использовать пакет базы данных Faker для заполнения своей базы данных. Я установил его правильно, но у меня не получается заставить его работать за пределами таблицы User. Вот что у меня есть для моего UserTableSeeder:
class UserTableSeeder extends Seeder {
public function run()
{
$faker = Faker\Factory::create();
for ($i = 0; $i < 100; $i++)
{
User::create(
[
'id' => $faker->randomDigit,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'email' => $faker->freeEmail,
'notify' => $faker->randomElement($array = ['y', 'n']),
'created_at' => $faker->dateTime($max = 'now'),
'updated_at' => $faker->dateTime($max = 'now')
]
);
}
}
}
Это наполовину работает, когда я бегу php artisan db:seed
; это создает только дюжину строк или около того. Моя таблица пользователей имеет семь столбцов:
id (его тип целое число),
first_name (VARCHAR),
last_name (VARCHAR),
электронная почта (VARCHAR),
уведомить (перечисление),
created_at (метка времени),
и updated_at (отметка времени)
Любой код, который будет обрабатывать это правильно или служить в качестве шаблона для аналогичной таблицы, будет принята с благодарностью. Спасибо, ребята.
'id' => $faker->randomDigit
вероятно, вызывает конфликтующие идентификаторы (держу пари, вы получите десять строк, а не дюжину, так как есть десять возможных цифр). Пытаться $faker->randomNumber
вместо.
Миграция: $ table-> increments (‘id’);
Имея это, вам не нужно устанавливать какое-либо значение на ID, и вы избежите столкновения ID