添加测试数据的方法
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') ];});

浙公网安备 33010602011771号