Как в laravel 10 наполнять базу своими значениями через factory?

Версия Laravel 10 на данный момент не существует, поэтому буду предполагать, что вы имеете в виду версию Laravel 8 или предыдущие версии, где отсутствует встроенная функциональность Factory.

В Laravel фабрики (Factory) используются для создания тестовых данных и наполнения базы данных. Это мощный инструмент, позволяющий генерировать фейковые или случайные данные для заполнения таблиц базы данных, что упрощает разработку и тестирование приложения.

Чтобы использовать Factory в Laravel, вам понадобится установить и настроить пакет Faker, который применяется для генерации фейковых данных. Faker является популярным PHP-пакетом, позволяющим создавать реалистичные, но фейковые данные разного типа (имена, адреса, электронные почты и т. д.).

1. Установка Faker:
Вы можете установить Faker, выполнив следующую команду в командной строке:

   composer require fakerphp/faker

2. Настройка моделей:
Прежде чем создавать фабрики, у вас должны быть определены модели и соответствующие данные для заполнения.

Например, если у вас есть модель "User" с полями "name" и "email", вам нужно определить эту модель:

   <?php
      
   namespace AppModels;
   
   use IlluminateDatabaseEloquentModel;
   
   class User extends Model
   {
       protected $table = 'users';
       
       // Другие свойства и методы модели...
   }

3. Создание фабрики:
Теперь создайте фабрику для модели с помощью команды Artisan:

   php artisan make:factory UserFactory

Это создаст файл "UserFactory.php" в директории "database/factories".

4. Настройка фабрики:
В открывшемся файле "UserFactory.php" вы можете определить логику заполнения таблицы фейковыми данными с использованием Faker.

   <?php
   
   namespace DatabaseFactories;
   
   use AppModelsUser;
   use IlluminateDatabaseEloquentFactoriesFactory;
   use FakerFactory as Faker;
   
   class UserFactory extends Factory
   {
       protected $model = User::class;
   
       public function definition()
       {
           $faker = Faker::create();
           
           return [
               'name' => $faker->name,
               'email' => $faker->unique()->safeEmail,
               // Другие поля, если есть...
           ];
       }
   }

Вам также стоит установить связь фабрики с моделью в методе "definition" с помощью свойства "model".

5. Запуск фабрики:
Теперь вы готовы использовать фабрику для создания фейковых данных.

В файле "DatabaseSeeder.php" вы можете вызвать фабрику для заполнения базы данных:

   <?php
   
   namespace DatabaseSeeders;
   
   use IlluminateDatabaseSeeder;
   use AppModelsUser;
   
   class DatabaseSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
           // Другие фабрики, если нужно...
       }
   }

Здесь мы вызываем фабрику "UserFactory" и говорим ей создать 10 записей в таблице "users".

Обратите внимание, что вам также нужно добавить вызов User::factory() в пространстве имен use.

6. Запуск миграций и заполнение базы данных:
Для того, чтобы данные были определенной структуры, вам также потребуется создать и запустить миграции.

Запустите миграции с помощью команды:

   php artisan migrate --seed

Команда --seed указывает Laravel заполнить базу данных сидерами (seeder), которые в свою очередь используют фабрики.

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