laravel数据填充

1.依赖包:fakerphp/faker

composer require fakerphp/faker:版本号  --dev  

2.生成model,默认位置:App/models

# 这里使用默认命令行,可以安装其他插件生成,如:littlebug/laravel-repository
# 官方命令生成的模型定义,没有插件的丰富
php artisan make:model Test

3.生成factory

php artisan make:model TestFactory

# 编写TestFactory
# 注意底层定义的常量:
\Illuminate\Database\Eloquent\Model
# const CREATED_AT = 'created_at';
# const UPDATED_AT = 'updated_at';
# 1.检查你的表是否是这两个字段(创建时间,更新时间)
# 2.如果不是,则在你的Model重新定义,如果没有时间字段,就设置为null,不能设置为空。 
# 3.如果重新定义后,在下面的工厂类可以不写时间。自动会帮你加上的。
<?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

use Faker\Generator as Faker;

$factory->define(\App\Models\Test::class, function (Faker $faker) {
    $actions = [
        '跑步',
        '跳绳',
        '踢球',
        '打游戏',
    ];
    return [
        'action' => $faker->randomElement($actions),
        'title' => $faker->word,
        'suggest_tips_price' => $faker->randomFloat(2,0.01,999),
        'hour' => $faker->randomFloat(2,0.01,10),
    ];
});
 

4.生成seeder

php artisan make:seeder TestSeeder

# TestSeeder.php
<?php

use Illuminate\Database\Seeder;

class TestSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        # 生成50条数据
        # 其他方法参考官方文档编写
        factory(\App\Models\Test::class,50)->create();
    }
}

5.执行生成


# 默认情况下, db:seed 命令将运行 DatabaseSeeder 类,
# 这个类可以用来调用其它 Seed 类。不过,你也可以使用 --class 选项来指定一个特定的 seeder 类

第一种方式:
  php artisan db:seed --class=TestSeeder
第二种方式:
  php artisan db:seed 
# DatabaseSeeder 
<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        # 多个可用数组形式
        # [seeder1::class,seeder2::class,seerder3::class]
        $this->call(TestSeeder::class);
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容