数据库: 数据填充
简介
Laravel 可以简单的使用 seed 类来给数据库填充测试数据。所有的 seed 类都放在 database/seeds
目录下。你可以任意地为 Seed 类命名,但是应该遵守某些大小写规范,可用类似 UserTableSeeder
之类的命名。 Laravle 默认为你定义了一个 DatabaseSeeder
类。你可以在这个类中使用 call
方法来运行其它的 seed 类,以借此控制数据填充的顺序。
编写数据填充
你可以通过 make:seeder
Artisan 命令 来生成一个 Seeder。所有通过框架生成的 Seeder 都将被放置在 database/seeders
路径:
php artisan make:seeder UsersTableSeeder
在 seeder 类里只有一个默认方法:run
。当运行 db:seed
Artisan 命令 时就会调用此方法。你可以在 run
方法中给数据库添加任何数据。你可使用 查询语句构造器 或 Eloquent 模型工厂 来手动添加数据。
如下所示,我们将修改 Laravel 预先生成好的 DatabaseSeeder
类来给 run
方法添加一段可在数据库添加数据的语法:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
/**
* 运行数据库填充。
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => str_random(10),
'email' => str_random(10).'@gmail.com',
'password' => bcrypt('secret'),
]);
}
}