Комплексное руководство по добавлению пользовательских данных в базу данных в Laravel

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

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

Шаг 1. Создайте фабрику моделей
Создайте фабрику моделей, которая определяет структуру и поддельные данные для вашей пользовательской модели. Вы можете использовать вспомогательную функцию factoryили команду artisan для создания файла фабрики модели.

use Faker\Generator as Faker;
$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => bcrypt('password'),
    ];
});

Шаг 2. Создайте загрузчик базы данных
Создайте загрузчик базы данных, чтобы вызвать фабрику моделей и внести данные в базу данных. Вы можете использовать команду artisan db:seedдля создания файла раздачи.

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

Шаг 3. Запустите программу раздачи
Чтобы запустить программу раздачи и заполнить базу данных пользовательскими данными, выполните следующую ремесленную команду:

php artisan db:seed --class=UserSeeder

Метод 2: использование сеялок на основе массива.
Другой подход к заполнению пользовательских данных — использование сеялок на основе массива. Этот метод подходит, если у вас есть определенные пользовательские данные для заполнения. Выполните следующие действия:

Шаг 1. Создайте источник данных
Создайте файл источника данных и определите массив, содержащий пользовательские данные, которые вы хотите заполнить.

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UserSeeder extends Seeder
{
    public function run()
    {
        $users = [
            [
                'name' => 'John Doe',
                'email' => 'john@example.com',
                'password' => bcrypt('password'),
            ],
            // Add more user data
        ];
        DB::table('users')->insert($users);
    }
}

Шаг 2. Запустите сеялку
Чтобы запустить сеялку на основе массива, выполните следующую ремесленную команду:

php artisan db:seed --class=UserSeeder

Метод 3: использование необработанных запросов SQL
Если вы предпочитаете использовать необработанные запросы SQL, вы можете напрямую выполнять запросы для вставки пользовательских данных в базу данных. Вот пример:

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UserSeeder extends Seeder
{
    public function run()
    {
        $sql = "
            INSERT INTO users (name, email, password)
            VALUES
                ('John Doe', 'john@example.com', '".bcrypt('password')."'),
                -- Add more user data
        ";
        DB::statement($sql);
    }
}

Шаг 2. Запустите сеялку
Чтобы запустить сеялку необработанного SQL, выполните следующую ремесленную команду:

php artisan db:seed --class=UserSeeder

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