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 分享