添加测试数据的方法

 

1. 添加模型工厂的方法

 

  - 创建一个模型工厂文件

php artisan make:factory PostFactory --model=Models/Post

 

  - 编辑 databases/factory/PostFactory.php

use App\Models\Post;
use Faker\Generator as Faker;

$factory->define(Post::class, function (Faker $faker) {
    return [
        "title"=>$faker->sentence(mt_rand(3,10)),
        "content"=> join( "\n\n", $faker->paragraphs(mt_rand(3,6))),
        "published_at"=>$faker->dateTimeBetween('-1 month', '+3 days')
    ];
});

  faker的使用:  https://github.com/fzaninotto/Faker

 

2. 新建填充类 seeder

 php artisan make:seeder PostsTableSeeder

  

 执行单条填充:  php artisan db:seed --class=PostsTableSeeder

 - PostsTableSeeder

    use App\Models\Post;

    public function run()
    {
        //
        Post::truncate();  // 先清理表数据
        factory(Post::class, 20)->create();  // 一次填充20篇文章
    }

 

 

 -  多条一起调用 DatabaseSeeder.php

    需要添加这句:
    use Illuminate\Database\Eloquent\Model;

    public function run()
    {
        Model::unguard();
        // $this->call(UsersTableSeeder::class);
        $this->call(PostsTableSeeder::class);

        // Model::guard(); 为什么不能加上??

    }

 

 


use App\Models\Post;use Faker\Generator as Faker;
$factory->define(Post::class, function (Faker $faker) {    return [        "title"=>$faker->sentence(mt_rand(3,10)),        "content"=> join( "\n\n", $faker->paragraphs(mt_rand(3,6))),        "published_at"=>$faker->dateTimeBetween('-1 month', '+3 days')    ];});

 

posted @ 2019-06-27 19:58  aocn  阅读(354)  评论(0)    收藏  举报