以下由Laravel教學專欄帶大家介紹laravel利用seeder實作資料表中填入數據,希望對大家有幫助!
laravel利用seeder實作資料表中填入資料
##為大家示範如何快速填入資料表中的資料首先要執行php artisan指令會出現各種指令指示查找到
php artisan make:seeder
根據指令指示建立對應的文件,如下所示
php artisan make:seeder TestSeeder
首先我先建立一個test表,如下圖
#TestSeeder.php檔案內容如下所示
<?php use Illuminate\Database\Seeder; 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; $x<=10; $x++) { 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加密 ]); }
#資料庫的資料展示如下:
##如需要同時新增多個表格的測試數據,則需要在DatabaseSeeder.php中新增:<?php
use Illuminate\Database\Seeder;
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
以上是laravel如何快速實現資料填入(使用seeder)的詳細內容。更多資訊請關注PHP中文網其他相關文章!