遵循前面创建种子的示例。本示例使用MySQL Dump在项目数据库中播种表。必须在播种之前创建表。
<?php use Illuminate\Database\Seeder; class UserTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $sql = file_get_contents(database_path() . '/seeds/users.sql'); DB::statement($sql); } }
$sql将成为users.sql转储的内容。转储应具有INSERT INTO语句。存储转储的位置将取决于您。在上面的示例中,它存储在项目目录中\database\seeds。使用laravel的辅助函数,database_path()并附加转储的目录和文件名。
INSERT INTO `users` (`id`, `name`, `email`, `password`, `remember_token`, `created_at`, `updated_at`) VALUES (1, 'Jane', 'janeDoe@fakemail.com', 'superSecret', NULL, '2016-07-21 00:00:00', '2016-07-21 00:00:00'), (2, 'John', 'johnny@fakemail.com', 'sup3rS3cr3t', NULL, '2016-07-21 00:00:00', '2016-07-21 00:00:00');
DB::statement($sql)Seeder运行后,将执行插入操作。与前面的示例一样,您可以将放在laravel提供UserTableSeeder的DatabaseSeeder类中:
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $this->call(UserTableSeeder::class); } }
并从项目目录中的CLI运行php artisan db:seed。或者您可以使用以下命令为单个类运行Seederphp artisan db:seed --class=UsersTableSeeder