Maison  >  Article  >  cadre php  >  Introduction à la méthode Laravel d'utilisation du remplissage de données Faker (code)

Introduction à la méthode Laravel d'utilisation du remplissage de données Faker (code)

不言
不言avant
2019-04-12 10:02:014086parcourir

Cet article vous apporte une introduction (code) sur la méthode d'utilisation des données Faker dans Laravel. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Introduction : Lors du développement, l'ajout de données de test est essentiel. Laravel a intégré un remplissage de données très pratique.

Migration des données

Créez d'abord le modèle de données et la migration des donnéesphp artisan make:model Models/FakerUser -m

Créez seulement quelques champs simples et modifiez le database/migrations/{now_date}_create_faker_users_table.phpfichier

/**
     * Run the migrations.
     *
     * @return void
     */7
    public function up()
    {
        Schema::create('faker_users', function (Blueprint $table) {
            $table->increments('id');
            $table->char('name', 20)->comment('姓名');
            $table->string('email', 50)->comment('邮箱');
            $table->tinyInteger('age')->comment('年龄');
            $table->char('city', 20)->comment('城市');
            $table->timestamps();
        });

        DB::statement("ALTER TABLE `faker_users` comment'测试用户表'"); // 表注释
    }

Exécuter la migration des donnéesphp artisan migrate puis la table de données est créée.

Remplissage des données

Créer un fichier de remplissage de donnéesphp artisan make:seeder FakerUsersSeeder

Une fois la création terminée, nous pouvons le créer ; dans run() Ajoutez manuellement plusieurs éléments de données de test à la méthode. Mais un bon moyen est d'utiliser Model Factory, puis de porter votre attention sur l'usine modèle

Créer une usine modèlephp artisan make:factory FakerUsersFactory

 ; Dans l'usine de modèles, vous pouvez utiliser FakerGenerator pour générer des données de test et modifier database/factories/FakerUsersFactory.php

<?php use Faker\Generator as Faker;

$factory->define(\App\Models\FakerUser::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->safeEmail,
        'age' => $faker->numberBetween(8, 80),// 数字在 8-80 之间随机
        'city' => $faker->city,
        'created_at' => $faker->dateTimeBetween('-3 year', '-1 year'),// 时间在 三年到一年 之间
        'updated_at' => $faker->dateTimeBetween('-1 year', '-5 month'),// 时间在 一年到五个月之间
    ];
});

À partir du code ci-dessus, vous pouvez clairement voir le rôle de FakerGenerator. Il existe de nombreux types de données qu'il peut générer. Pour plus de types, vous pouvez lire la documentation officielle. Bien qu'elle soit en anglais, elle contient des exemples et est facile à comprendre

Faker Les données générées sont par défaut en anglais ; , qui peut définir config/app.php sur faker_locale dans zh_CN ; la fabrique modèle

est écrite et l'étape suivante consiste à l'appeler. En revenant au fichier de remplissage de données database/seeds/FakerUsersSeeder.php, dans la méthode run() le code suivant

/**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(\App\Models\FakerUser::class)->times(1000)->make()->each(function ($model) {
            // 数据入库
            $model->save();
        });
    }

time() est le nombre de fois de génération, et la méthode make() consiste à créez une instance de modèle, dans la méthode each( ) enregistre l'instance de modèle générée dans la base de données.

La dernière étape consiste à effectuer le remplissage des données. Après composer dump-autoload php artisan db:seed --class=FakerUsersSeeder

Test

D'accord, voyons si la base de données. les données sont générées correctement. Regardez le nombre total

Introduction à la méthode Laravel dutilisation du remplissage de données Faker (code)

Il n'y a aucun problème avec le nombre total. Regardez dix données aléatoires

Introduction à la méthode Laravel dutilisation du remplissage de données Faker (code)

Les données sont également correctes de

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer