Seeder 是laravel的一個新概念,字面意思為播種機。Seeder 解決的是我們在開發(fā) web 應(yīng)用的時候,需要手動向數(shù)據(jù)庫中填入假數(shù)據(jù)的繁瑣低效問題。
首先我們運行一下代碼創(chuàng)建seeder文件:
php artisan make:seeder ArticleSeeder
我們會發(fā)現(xiàn)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注冊到系統(tǒng)內(nèi),修改 database/seeds/DatabaseSeeder.php 中的 run 函數(shù)為:
public function run()
{
$this->call(ArticleSeeder::class);
}
由于 database 目錄沒有像 app 目錄那樣被 composer 注冊為 psr-4 自動加載,采用的是 psr-0 classmap 方式,所以我們還需要運行以下命令把 ArticleSeeder.php
加入自動加載系統(tǒng),避免找不到類的錯誤:
composer dump-autoload
然后執(zhí)行seed
php artisan db:seed
這時候刷新一下數(shù)據(jù)庫中的 articles 表,會發(fā)現(xiàn)已經(jīng)被插入了 10 行假數(shù)據(jù)