Освоение раздающих баз данных Laravel: увеличение количества ваших данных

Если вы разработчик Laravel и хотите оптимизировать процесс заполнения данных, вам повезло! Laravel предоставляет мощную функцию под названием «сидеры базы данных», которая позволяет вам легко заполнять базу данных тестовыми или фиктивными данными. В этой статье мы рассмотрим различные методы и приемы, которые помогут вам освоить раздачу баз данных Laravel и повысить эффективность ваших усилий по заполнению данных.

Метод 1: базовое заполнение данных с помощью Faker
Один из самых простых способов заполнения базы данных — использование библиотеки Faker, которая генерирует реалистичные поддельные данные. Сначала убедитесь, что в вашем проекте Laravel установлена ​​библиотека Faker, выполнив следующую команду:

composer require fakerphp/faker

Далее создайте файл раздачи с помощью команды Artisan:

php artisan make:seeder UsersTableSeeder

В созданном файле раздачи вы можете использовать библиотеку Faker для заполнения таблицы фиктивными данными:

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
class UsersTableSeeder extends Seeder
{
    public function run()
    {
        $faker = Faker::create();
        for ($i = 0; $i < 10; $i++) {
            DB::table('users')->insert([
                'name' => $faker->name,
                'email' => $faker->email,
                'password' => bcrypt('password'),
            ]);
        }
    }
}

Наконец, запустите команду сеялки, чтобы заполнить базу данных сгенерированными данными:

php artisan db:seed --class=UsersTableSeeder

Метод 2: расширенное заполнение данных с помощью фабрик
Laravel также предоставляет мощную функцию под названием «фабрики», которая позволяет вам определять схемы данных для ваших моделей. Этот метод особенно полезен, когда у вас есть сложные отношения между таблицами базы данных. Для начала создайте фабрику для нужной модели с помощью команды Artisan:

php artisan make:factory PostFactory --model=Post

В сгенерированном заводском файле вы можете определить схему данных с помощью библиотеки Faker:

use Faker\Generator as Faker;
$factory->define(App\Models\Post::class, function (Faker $faker) {
    return [
        'title' => $faker->sentence,
        'content' => $faker->paragraph,
        'user_id' => factory(App\Models\User::class),
    ];
});

Далее создайте файл раздачи и используйте фабрику для создания нескольких экземпляров вашей модели:

use Illuminate\Database\Seeder;
class PostsTableSeeder extends Seeder
{
    public function run()
    {
        factory(App\Models\Post::class, 10)->create();
    }
}

Наконец, запустите команду сеялки, чтобы заполнить базу данных сгенерированными данными:

php artisan db:seed --class=PostsTableSeeder

Метод 3: Заполнение связей
При работе с связями базы данных вы можете использовать фабричный метод createдля создания связанных моделей и установления связей. Например, если у вас есть модель User, в которой много Posts, вы можете изменить определение фабрики следующим образом:

use Faker\Generator as Faker;
$factory->define(App\Models\Post::class, function (Faker $faker) {
    return [
        'title' => $faker->sentence,
        'content' => $faker->paragraph,
        'user_id' => function () {
            return factory(App\Models\User::class)->create()->id;
        },
    ];
});

Теперь, когда вы запустите сеялку, Laravel автоматически создаст Userи назначит его идентификатор полю user_idв Post.

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