利用Seeder生成网站初始数据

Seeder 是laravel的一个新概念,字面意思为播种机。Seeder 解决的是我们在开发 web 应用的时候,需要手动向数据库中填入假数据的繁琐低效问题。

首先我们运行一下代码创建seeder文件:

php artisan make:seeder ArticleSeeder

我们会发现database/seeds线面多了一个ArticleSeeder.php文件,
我们修改文件中的run方法

public function run()
{
    DB::table('articles')->delete();

    for ($i=0; $i < 10; $i++) {
        \App\Article::create([
            'title'   => 'Title '.$i,
            'body'    => 'Body '.$i,
            'user_id' => 1,
        ]);
    }
}

接下来将ArticleSeeder注册到系统内,修改 database/seeds/DatabaseSeeder.php 中的 run 函数为:

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

由于 database 目录没有像 app 目录那样被 composer 注册为 psr-4 自动加载,采用的是 psr-0 classmap 方式,所以我们还需要运行以下命令把 ArticleSeeder.php
加入自动加载系统,避免找不到类的错误:

composer dump-autoload

然后执行seed

php artisan db:seed

这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据

你可能感兴趣的:(利用Seeder生成网站初始数据)