這篇文章帶給大家的內容是關於laravel使用Faker資料填充的方法介紹(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
導語:做開發的時候,加入測試資料是不可或缺的,laravel 內建了很方便的資料填充,下面是實例。
資料遷移
先建立資料模型與資料遷移php artisan make:model Models/FakerUser -m
;
database/migrations/{now_date}_create_faker_users_table.php 檔案
/** * Run the migrations. * * @return void */7 public function up() { Schema::create('faker_users', function (Blueprint $table) { $table->increments('id'); $table->char('name', 20)->comment('姓名'); $table->string('email', 50)->comment('邮箱'); $table->tinyInteger('age')->comment('年龄'); $table->char('city', 20)->comment('城市'); $table->timestamps(); }); DB::statement("ALTER TABLE `faker_users` comment'测试用户表'"); // 表注释 }執行資料遷移
php artisan migrate 後資料表建立完成。
資料填充
建立資料填充檔案php artisan make:seeder FakerUsersSeeder;
run() 方法中手動新增幾個測試資料。但好的辦法,是使用
模型工廠,接下來把注意力轉移到模型工廠中;
php artisan make:factory FakerUsersFactory;
Faker\Generator 來產生測試數據,編輯
database/factories/FakerUsersFactory.php
#
<?php use Faker\Generator as Faker; $factory->define(\App\Models\FakerUser::class, function (Faker $faker) { return [ 'name' => $faker->name, 'email' => $faker->safeEmail, 'age' => $faker->numberBetween(8, 80),// 数字在 8-80 之间随机 'city' => $faker->city, 'created_at' => $faker->dateTimeBetween('-3 year', '-1 year'),// 时间在 三年到一年 之间 'updated_at' => $faker->dateTimeBetween('-1 year', '-5 month'),// 时间在 一年到五个月之间 ]; });由上述程式碼可以很直白的看出
Faker\Generator 的作用。它可以產生的資料類型有很多,更多的類型可以看下官方文檔,雖然是英文的,不過都有示例,簡單易懂;
Faker 產生的資料默認是英文,可以在
config/app.php 中將
faker_locale 設定為
zh_CN;
database/seeds/FakerUsersSeeder.php,在
run() 方法中如下程式碼
/** * Run the database seeds. * * @return void */ public function run() { factory(\App\Models\FakerUser::class)->times(1000)->make()->each(function ($model) { // 数据入库 $model->save(); }); }time() 是產生的次數,make() 方法是建立模型實例,在 each() 方法中將產生的模型實例入庫中保存。 最後就是執行資料填充,composer dump-autoload 之後 php artisan db:seed --class=FakerUsersSeeder測試#好了,看看資料庫的資料是否生成正確。看下總數
##資料也是正確的
以上是laravel使用Faker資料填充的方法介紹(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!