Laravel --- 自动生成数据

1.创建填充文件:php artisan make:seeder UserTableSeeder

2.在run方法里面写填充数据的代码:

use IlluminateDatabaseSeeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(AppUser::class)->times(300)->create();
    }
}

3.在DatabaseSeeder里面调用UserTableSeeder

    public function run()
    {
         $this->call(UsersTableSeeder::class);
    }

4.运行:php artisan db:seed 或 php artisan db:seed --class=UserTableSeeder

  注:此步骤可能会出现如下错误信息:[ReflectionException] Class ***TableSeeder does not exist`,

  确保新的seeder文件和全局database seeder是在同一个seeder目录下了,仍然会出现这个问题的原因是我们需要清理下之前执行生成的classmap信息。

  在控制台中执行`composer dump-autoload`,然后再执行`php artisan db:seed`

  注:如果出现Unable to locate factory with name [default] [AppTest]

  解决:在databasefactoriesModelFactory.php里面增加

   

$factory->define(AppTest::class, function (FakerGenerator $faker) {
    return [
        'user_id'=>$faker->randomNumber(),
        'title' => $faker->title,
        'content' => $faker->text(),
    ];
});
原文地址:https://www.cnblogs.com/taotaoxixihaha/p/6635395.html