laravel如何快速实现数据填充(使用seeder)

下面由laravel教程栏目带大家介绍laravel利用seeder实现数据表中填充数据,希望对大家有所帮助!

laravel利用seeder实现数据表中填充数据

给大家演示一下如何快速填充数据表中的数据

首先要执行php artisan命令 会出现各种命令指示 查找到

php artisan make:seeder

根据命令指示创建相应的文件,如下所示

php artisan make:seeder TestSeeder

laravel如何快速实现数据填充(使用seeder)

首先我先创建一个test表,如下所示

laravel如何快速实现数据填充(使用seeder)

TestSeeder.php文件内容如下所示

<?php use IlluminateDatabaseSeeder;  class TestSeeder extends Seeder {     /**      * Run the database seeds.      *      * @return void      */     public function run()     {         DB::table(&#39;test&#39;)->insert([             'name' =&gt; str_random(10),             'sex' =&gt; rand(1,2), // 1男 2女             'email' =&gt; str_random(10).'@qq.com',             'password' =&gt; bcrypt('123456'), // bcrypt为hash加密         ]);     } }

执行如下命令进行填充假数据

php artisan db:seed --class=TestSeeder

laravel如何快速实现数据填充(使用seeder)

每添加一条都要执行一边命令,这样会很麻烦,不如写一个for循环来一次新插入

for ($x=0; $xinsert([           'name' =&gt; str_random(10),           'sex' =&gt; rand(1,2), // 1男 2女           'email' =&gt; str_random(10).'@qq.com',           'password' =&gt; bcrypt('123456'), // bcrypt为hash加密      ]); }

数据库的数据展示如下:

laravel如何快速实现数据填充(使用seeder)

如需要同时添加多个表的测试数据,需要在DatabaseSeeder.php中添加:

<?php use IlluminateDatabaseSeeder;  class DatabaseSeeder extends Seeder {     public function run()     {         // $this->call(UsersTableSeeder::class);          $this-&gt;call(CreateDepartmentsSeeder::class);          $this-&gt;call(CreateUsersSeeder::class);          $this-&gt;call(CreateWagesSeeder::class);     } }

 执行如下命令进行填充多个表的测试数据

php artisan db:seed
当我们执行  php artisan db:seed  提示 class UserTableSeeder does not exist  这个错误基本是出现在不经过composer的时候出现的,至于为什么会出现呢? 1.可能是你执行php artisan make:seeder UserTableSeeder 的时候,他没有把UserTableSeeder.php 写到自动加载里面去 2.你是复制过来的  解决方法: composer dump-autoload

官方文档地址:  https://laravel.com/docs/5.5/seeding#writing-seeders

以上就是

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享