Занесение пользовательских данных в базу данных — обычная задача в приложениях 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-запросов. Выберите метод, который лучше всего соответствует вашим требованиям, и легко заполняйте базу данных пользовательскими данными.