📅  最后修改于: 2023-12-03 15:37:23.310000             🧑  作者: Mango
在 Laravel 中,我们可以使用播种机(seeder)来快速填充数据库表的数据。播种机可以用于测试、示例数据、初始化数据等。
首先,打开命令行终端并进入 Laravel 项目根目录。然后执行以下命令,创建一个新的播种机:
php artisan make:seeder UsersTableSeeder
创建成功后,我们可以在 database/seeds
目录下看到一个新的 UsersTableSeeder.php
文件。
现在,打开 UsersTableSeeder.php
文件,并进行如下修改:
use Illuminate\Database\Seeder;
use DB;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'password' => bcrypt('secret'),
]);
// 这里可以添加更多的用户数据...
}
}
在 run()
方法中,我们使用 DB
类的 table()
和 insert()
方法向 users
表中插入一条用户数据。需要注意的是,在 Laravel 5.8 及更高版本中,insert()
方法第二个参数必须为数组类型,因此我们使用数组字面量来表示需要插入的数据。
执行以下命令,运行刚刚创建的播种机:
php artisan db:seed --class=UsersTableSeeder
这条命令会自动调用 UsersTableSeeder
类中的 run()
方法,并向 users
表中插入数据。
除了以上介绍的基本用法,播种机还拥有以下特性:
DatabaseSeeder
类:在 database/seeds
目录下还有一个 DatabaseSeeder.php
文件,该文件是一个抽象类,可以用于运行所有的播种机。Seeder
前置条件:在某些场景下,我们需要确保某个表已经存在才能进行播种操作,此时可以使用 before()
方法来设置前置条件。make:seeder
命令可以快速创建一个新的播种机,该命令还支持 --database
、--force
和 --path
等选项,可以方便地指定数据库、强制覆盖已存在的播种机和指定具体的路径等。php artisan db:seed --class=UsersTableSeeder --pretend
命令来预览播种机的操作,以确保不会误删除重要数据。通过本文的介绍,我们了解到了如何在 Laravel 中使用播种机插入数据,以及更多的特性和操作方法。播种机是一个很强大的工具,能够帮助我们快速地填充数据库表的数据,进而提高开发效率。