Laravel Seeder: вставка данных стала проще

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

Метод 1: использование команды db:seedArtisan
Один из самых простых способов вставки данных с помощью сеялок — использование команды db:seedArtisan. Laravel предоставляет эту команду «из коробки», что позволяет удобно заполнять базу данных данными. Вот пример того, как его можно использовать:

php artisan db:seed

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

Метод 2: создание пользовательского класса сеялки
Помимо класса по умолчанию DatabaseSeeder, Laravel позволяет создавать собственные классы сеялки для более конкретных потребностей вставки данных. Чтобы создать собственный класс сеялки, вы можете использовать команду make:seederArtisan. Вот пример:

php artisan make:seeder UsersTableSeeder

Эта команда создаст новый класс сеялки с именем UsersTableSeeder. Затем вы можете определить логику вставки данных внутри метода runэтого класса.

Метод 3: использование фабрик моделей
Laravel предоставляет отличную функцию под названием «Фабрики моделей», которая позволяет вам определять схемы данных для таблиц базы данных. Вы можете использовать фабрики моделей в своих сеялках для создания и вставки реалистичных данных. Вот пример:

use App\Models\User;
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
    public function run()
    {
        User::factory()->count(10)->create();
    }
}

В этом примере мы используем модель Userи метод factoryдля создания десяти поддельных записей пользователей и вставки их в usersтаблица.

Метод 4: заполнение определенных данных
Иногда вам может потребоваться вставить определенные данные в базу данных вместо того, чтобы генерировать их случайным образом. В таких случаях вы можете использовать метод insert, предоставляемый построителем запросов Laravel. Вот пример:

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class ProductsTableSeeder extends Seeder
{
    public function run()
    {
        $data = [
            ['name' => 'Product 1', 'price' => 10],
            ['name' => 'Product 2', 'price' => 20],
            ['name' => 'Product 3', 'price' => 30],
        ];
        DB::table('products')->insert($data);
    }
}

В этом примере мы вручную определяем массив продуктов и вставляем их в таблицу productsс помощью метода insert.

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

Не забудьте запустить программы раздачи с помощью команды php artisan db:seedдля выполнения процесса раздачи.