>  기사  >  PHP 프레임워크  >  Faker 데이터 채우기(코드)를 사용하는 laravel의 방법 소개

Faker 데이터 채우기(코드)를 사용하는 laravel의 방법 소개

不言
不言앞으로
2019-04-12 10:02:014086검색

이 글은 Faker 데이터를 laravel에 채우는 방법에 대한 소개(코드)를 제공합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

소개: 개발을 할 때 테스트 데이터를 추가하는 것은 필수입니다. Laravel에는 매우 편리한 데이터 채우기가 내장되어 있습니다.

데이터 마이그레이션

먼저 데이터 모델 생성 및 데이터 마이그레이션 php artisan make:model Models/FakerUser -m;php artisan make:model Models/FakerUser -m

只创建几个简单字段,编辑 database/migrations/{now_date}_create_faker_users_table.php 文件

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

运行数据迁移 php artisan migrate 之后数据表创建完成。

数据填充

创建数据填充文件 php artisan make:seeder FakerUsersSeeder

创建完成后,我们可以在 run() 方法中手动添加几条测试数据。但是好的办法,是使用模型工厂,接下来把注意力转移到模型工厂中;

创建模型工厂 php artisan make:factory FakerUsersFactory

在模型工厂中,可以通过 FakerGenerator 来生成测试数据,编辑 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'),// 时间在 一年到五个月之间
    ];
});

由上述代码可以很直白的看出 FakerGenerator 的作用。它可以生成的数据类型有很多,更多的类型可以看下官方文档,虽然是英文的,不过都有示例,简单易懂;

Faker 生成的数据默认是英文,可以在 config/app.php 中将 faker_locale 设置为 zh_CN

模型工厂写好了,接下来就是调用。目光回到数据填充文件 database/seeds/FakerUsersSeeder.php,在 run()#🎜 🎜 #
몇 가지 간단한 필드만 생성하고 database/migrations/{now_date}_create_faker_users_table.php 파일을 편집합니다.

/**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(\App\Models\FakerUser::class)->times(1000)->make()->each(function ($model) {
            // 数据入库
            $model->save();
        });
    }
데이터 마이그레이션 실행 php artisan migration 그 후 데이터 테이블이 생성됩니다.

데이터 채우기

데이터 채우기 파일 생성 php artisan make:seeder FakerUsersSeeder;#🎜🎜 #

생성 후 run() 메서드에 여러 테스트 데이터 조각을 수동으로 추가할 수 있습니다. 하지만 좋은 방법은 Model Factory를 사용한 다음 모델 팩토리에 관심을 돌리는 것입니다.

Faker 데이터 채우기(코드)를 사용하는 laravel의 방법 소개 모델 팩토리 php artisan make:factory FakerUsersFactory code>;


모델 팩토리에서 FakerGenerator를 사용하여 테스트 데이터를 생성하고 database/factories/FakerUsersFactory.php를 편집할 수 있습니다. >

rrreeeFaker 데이터 채우기(코드)를 사용하는 laravel의 방법 소개위 코드를 보면 FakerGenerator의 기능을 확실히 알 수 있습니다. 생성할 수 있는 데이터 유형은 다양합니다. 공식 문서는 영어로 되어 있지만 예제가 포함되어 있어 이해하기 쉽습니다. > 생성됨 데이터는 기본적으로 영어로 되어 있습니다. config/app.php에서 faker_localezh_CN으로 설정할 수 있습니다. 🎜#모델 팩토리가 작성되고, 다음 단계는 이를 호출하는 것입니다. 데이터 채우기 파일 database/seeds/FakerUsersSeeder.php로 돌아갑니다. run() 메서드에서 다음 코드는

rrreee#🎜입니다. 🎜#time()은 생성 횟수, make() 메소드는 모델 인스턴스를 생성하는 것이고, Each() 메소드는 생성된 모델 인스턴스를 데이터베이스에 저장하는 것입니다.

마지막 단계는 데이터 채우기를 수행하는 것입니다. Composer dump-autoload php artisan db:seed --class=FakerUsersSeeder

Test

#🎜🎜#좋아요 , 보세요. 데이터베이스의 데이터가 올바르게 생성되었는지 확인하세요. 총 개수를 보세요#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#총 개수는 문제가 없으니 10개의 데이터를 랜덤하게 살펴보세요#🎜🎜## 🎜🎜##🎜🎜##🎜🎜 ##🎜🎜##🎜🎜#데이터도 정확합니다#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#

위 내용은 Faker 데이터 채우기(코드)를 사용하는 laravel의 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제