Maison > cadre php > Laravel > Comment utiliser la fonction de remplissage des données de Laravel

Comment utiliser la fonction de remplissage des données de Laravel

PHPz
Libérer: 2023-04-19 10:50:35
original
1022 Les gens l'ont consulté

Laravel est un framework PHP populaire qui fournit de nombreuses fonctions et outils utiles, l'une des fonctionnalités importantes étant le remplissage des données. Le remplissage des données fait référence au remplissage des données dans la table de la base de données avec des valeurs prédéfinies pour les tests et le développement. Cet article explique comment utiliser la fonction de remplissage de données de Laravel.

1. Préparation

Avant d'utiliser la fonction de remplissage de données de Laravel, vous devez créer une table de base de données et un modèle Eloquent. Voici un exemple simple :

php artisan make:model User -m
Copier après la connexion

La commande ci-dessus créera un modèle Utilisateur et un fichier de migration de base de données xxxx_xx_xx_xxxxxx_create_users_table.php dans le répertoire app >. Nous devons définir la structure de la table dans le fichier de migration : app目录下创建一个User模型和一个数据库迁移文件xxxx_xx_xx_xxxxxx_create_users_table.php。我们需要在迁移文件中定义表结构:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}
Copier après la connexion

然后运行数据库迁移:

php artisan migrate
Copier après la connexion

这将创建一个名为users的数据表。

二、填充数据

Laravel提供了一个db:seed命令用于填充数据。我们可以在database/seeds目录下创建一个Seeder类,继承IlluminateDatabaseSeeder类,并实现run方法。

下面是一个简单的示例UserSeeder.php

use Illuminate\Database\Seeder;
use App\User;

class UserSeeder extends Seeder
{
    public function run()
    {
        factory(User::class, 50)->create();
    }
}
Copier après la connexion

上面的代码使用Laravel的工厂模式生成了50个User模型,并将它们存储到数据库中。

run方法中,我们可以使用Laravel的查询构建器和Eloquent模型来对数据库进行操作。在这个示例中,我们使用了factory函数来创建50个User模型实例,并将它们保存到数据库中。

三、调用Seeder

创建好了Seeder类之后,我们需要调用它来填充数据。我们可以在database/seeds/DatabaseSeeder.php文件中调用所有需要填充的数据。这个类是一个主要的seeder,它用于调用其他Seeder类。

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        $this->call(UserSeeder::class);
    }
}
Copier après la connexion

调用UserSeeder类后,我们可以通过命令行执行db:seed命令来填充数据:

php artisan db:seed
Copier après la connexion

这个命令会自动找到所有定义的Seeder类,并运行它们的run方法。

四、使用Factory

在上面的示例中,我们使用了Laravel的工厂模式来生成50个User模型实例。Laravel的工厂模式可以帮助我们轻松地生成测试和开发所需的数据。

我们可以使用makecreate方法创建模型。make方法用于创建一个临时的、未保存到数据库的模型实例,create方法用于创建一个保存到数据库的模型实例。

在Laravel中,我们可以使用Factory类来定义、注册和使用工厂。Factory类的使用非常简单,我们只需要在database/factories目录下创建一个工厂文件,通过define方法定义一个模型及其属性。下面是一个简单的示例UserFactory.php

use Faker\Generator as Faker;
use App\User;

$factory->define(User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => bcrypt('password'),
    ];
});
Copier après la connexion

在这个示例中,我们使用了Faker类来生成随机的模型数据,模拟真实的用户数据。这个工厂定义了nameemailpassword三个属性。

当我们需要使用这个工厂时,我们可以使用以下代码:

use App\User;

$user = factory(User::class)->create();
Copier après la connexion

这会创建一个新的User模型实例,并将其保存到数据库中。我们也可以使用make

use App\User;

$user = factory(User::class)->make();
Copier après la connexion
Ensuite, lancez la migration de la base de données :

rrreee

Cela créera une table de données nommée users.

2. Remplissage des données

Laravel fournit une commande db:seed pour remplir les données. Nous pouvons créer une classe Seeder dans le répertoire database/seeds, hériter de la classe IlluminateDatabaseSeeder et implémenter la méthode run. 🎜🎜Voici un exemple simple UserSeeder.php : 🎜rrreee🎜Le code ci-dessus utilise le modèle d'usine de Laravel pour générer 50 modèles User et les stocke dans le milieu de la base de données. 🎜🎜Dans la méthode run, nous pouvons utiliser le générateur de requêtes de Laravel et le modèle Eloquent pour faire fonctionner la base de données. Dans cet exemple, nous utilisons la fonction factory pour créer 50 instances de modèle User et les enregistrer dans la base de données. 🎜🎜3. Appeler Seeder🎜🎜Après avoir créé la classe Seeder, nous devons l'appeler pour remplir les données. Nous pouvons appeler toutes les données qui doivent être renseignées dans le fichier database/seeds/DatabaseSeeder.php. Cette classe est un seeder principal, qui est utilisé pour appeler d’autres classes seeder. 🎜rrreee🎜Après avoir appelé la classe UserSeeder, nous pouvons exécuter la commande db:seed via la ligne de commande pour remplir les données : 🎜rrreee🎜Cette commande trouvera automatiquement tous défini les classes Seeder et exécute leurs méthodes run. 🎜🎜4. Utilisation de Factory🎜🎜Dans l'exemple ci-dessus, nous avons utilisé le modèle d'usine de Laravel pour générer 50 instances de modèle Utilisateur. Le modèle d'usine de Laravel peut nous aider à générer facilement les données nécessaires aux tests et au développement. 🎜🎜Nous pouvons créer des modèles en utilisant les méthodes make et create. La méthode make est utilisée pour créer une instance de modèle temporaire qui n'est pas enregistrée dans la base de données, et la méthode create est utilisée pour créer une instance de modèle qui est enregistrée dans la base de données. . 🎜🎜Dans Laravel, nous pouvons utiliser la classe Factory pour définir, enregistrer et utiliser des usines. L'utilisation de la classe Factory est très simple. Il suffit de créer un fichier factory dans le répertoire database/factories et de définir un modèle et sa configuration via le . définir la propriété. Voici un exemple simple UserFactory.php : 🎜rrreee🎜Dans cet exemple, nous utilisons la classe Faker pour générer des données de modèle aléatoires afin de simuler des données utilisateur réelles. Cette fabrique définit trois attributs : name, email et password. 🎜🎜Lorsque nous avons besoin d'utiliser cette usine, nous pouvons utiliser le code suivant : 🎜rrreee🎜Cela créera une nouvelle instance de modèle Utilisateur et l'enregistrera dans la base de données. Nous pouvons également utiliser la méthode make pour créer une instance de modèle qui n'est pas enregistrée dans la base de données : 🎜rrreee🎜Cette instance de modèle contiendra des valeurs de propriété générées aléatoirement, que nous pourrons utiliser dans les tests et le développement. 🎜🎜5. Résumé🎜🎜Laravel fournit une fonction de remplissage de données pratique. Nous pouvons utiliser Seeder pour générer des données de test et utiliser le mode usine pour générer des instances de modèle. Avec cette fonctionnalité, nous pouvons facilement remplir les tables de base de données pour faciliter les tests et le développement. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal