Heim >PHP-Framework >Laravel >Einführung in die Methode von Laravel zur Verwendung der Faker-Datenfüllung (Code)

Einführung in die Methode von Laravel zur Verwendung der Faker-Datenfüllung (Code)

不言
不言nach vorne
2019-04-12 10:02:014139Durchsuche

Dieser Artikel bietet Ihnen eine Einführung (Code) zur Verwendung von Faker-Daten. Er hat einen gewissen Referenzwert. Ich hoffe, er wird für Sie hilfreich sein.

Einführung: Bei der Entwicklung ist das Hinzufügen von Testdaten unerlässlich. Das Folgende ist ein Beispiel.

Datenmigration

Erstellen Sie zuerst das Datenmodell und die Datenmigrationphp artisan make:model Models/FakerUser -m;

Erstellen Sie nur ein paar einfache Felder und bearbeiten Sie die database/migrations/{now_date}_create_faker_users_table.phpDatei

/**
     * 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'测试用户表'"); // 表注释
    }

Führen Sie die Datenmigration ausphp artisan migrate und dann wird die Datentabelle erstellt.

Datenfüllung

Datenfüllungsdatei erstellenphp artisan make:seeder FakerUsersSeeder;

Nachdem die Erstellung abgeschlossen ist, können wir sie erstellen in run() Fügen Sie der Methode manuell mehrere Testdaten hinzu. Eine gute Möglichkeit besteht jedoch darin, Modellfabrik zu verwenden und sich dann der Modellfabrik

zuzuwenden In der Modellfabrik können Sie php artisan make:factory FakerUsersFactory verwenden, um Testdaten zu generieren und

<?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'),// 时间在 一年到五个月之间
    ];
});
FakerGenerator zu bearbeiten. Aus dem obigen Code können Sie die Rolle von database/factories/FakerUsersFactory.php deutlich erkennen. Es gibt viele Arten von Daten, die generiert werden können. Sie können sich die offizielle Dokumentation ansehen, die jedoch Beispiele enthält und leicht zu verstehen ist Standardmäßig wird
auf gesetzt. Die

FakerGenerator-Modellfabrik wird geschrieben und der nächste Schritt besteht darin, sie aufzurufen. Zurück zur Datenfülldatei

: In der Methode

ist der folgende Code Fakerconfig/app.php

/**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(\App\Models\FakerUser::class)->times(1000)->make()->each(function ($model) {
            // 数据入库
            $model->save();
        });
    }
faker_localetime() die Anzahl der Generierungen, die Methode make() dient zum Erstellen eines Modells Instanz, in der every()-Methode Speichern Sie die generierte Modellinstanz in der Datenbank. zh_CNDer letzte Schritt besteht darin, nach dem Composer dump-autoload php artisan db:seed --class=FakerUsersSeeder

database/seeds/FakerUsersSeeder.phpTestrun()
Okay, mal sehen, ob die Datenbank Daten werden korrekt generiert. Schauen Sie sich die Gesamtzahl an

Es gibt kein Problem mit der Gesamtzahl. Schauen Sie sich zehn zufällige Daten an


Einführung in die Methode von Laravel zur Verwendung der Faker-Datenfüllung (Code)Die Daten sind auch korrekt von


Das obige ist der detaillierte Inhalt vonEinführung in die Methode von Laravel zur Verwendung der Faker-Datenfüllung (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen