下面由laravel教程欄目帶大家介紹laravel利用seeder實現數據表中填充數據,希望對大家有所幫助!
laravel利用seeder實現數據表中填充數據
給大家演示一下如何快速填充數據表中的數據
首先要執行php artisan命令 會出現各種命令指示 查找到
php?artisan?make:seeder
根據命令指示創建相應的文件,如下所示
php?artisan?make:seeder?TestSeeder
首先我先創建一個test表,如下所示
TestSeeder.php文件內容如下所示
<?php use IlluminateDatabaseSeeder; class TestSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('test')->insert([ ????????????'name'?=>?str_random(10), ????????????'sex'?=>?rand(1,2),?//?1男?2女 ????????????'email'?=>?str_random(10).'@qq.com', ????????????'password'?=>?bcrypt('123456'),?//?bcrypt為hash加密 ????????]); ????} }
執行如下命令進行填充假數據
php?artisan?db:seed?--class=TestSeeder
每添加一條都要執行一邊命令,這樣會很麻煩,不如寫一個for循環來一次新插入
for?($x=0;?$xinsert([ ??????????'name'?=>?str_random(10), ??????????'sex'?=>?rand(1,2),?//?1男?2女 ??????????'email'?=>?str_random(10).'@qq.com', ??????????'password'?=>?bcrypt('123456'),?//?bcrypt為hash加密 ?????]); }
數據庫的數據展示如下:
如需要同時添加多個表的測試數據,需要在DatabaseSeeder.php中添加:
<?php use IlluminateDatabaseSeeder; class DatabaseSeeder extends Seeder { public function run() { // $this->call(UsersTableSeeder::class); ?????????$this->call(CreateDepartmentsSeeder::class); ?????????$this->call(CreateUsersSeeder::class); ?????????$this->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
喜歡就支持一下吧
相關推薦