laraver框架學習------工廠模型填充測試數據
阿新 • • 發佈:2017-05-23
自己的 div nbsp thum ocl fine 代碼 style student
在laravel中填充數據有幾種方式。一種是Seeder,另一種是工廠模式進行的填充。
工廠模式可以實現大批量的填充數據,數據的量可以自定義。這也為後續的軟件測試提供方便。
在laravel框架有database文件下有工廠模式的定義文件,可以在其後面定義自己的工廠模式,註意對自己model對應。
$factory->define(App\Models\Course::class,function (Faker\Generator $faker) { $faker=Faker\Factory::create(‘zh_CN‘);--使用faker生成中文數據 $category= App\Models\Category::find(1);--進行數據庫的查詢 $user=App\User::where(‘name‘, ‘teacher‘)->first(); return[ ‘category_id‘=>$category->id, ‘stream_type‘=>$faker->numberBetween($min=1,$max=2), ‘name‘=>$faker->name(), ‘description‘=>$faker->catchPhrase(), ‘target_student‘=>$faker->catchPhrase(), ‘hours‘=>$faker->numberBetween($min=32,$max=32), ‘doclink‘=>$faker->url(), ‘thumblink‘=>$faker->imageUrl(10, 20, ‘cats‘, true, ‘Faker‘), ‘teachername‘=>$faker->name(), ‘teacherdesc‘=>$faker->catchPhrase(), ‘user_id‘=>$user->id, ‘status‘=>‘待審核‘, ]; });
在自己的Seeder文件下建立一個該model對應的Seeder文件添加如下的代碼實現工廠填充數據。
public function run() { // Model::unguard();--取消限制 DB::statement(‘SET FOREIGN_KEY_CHECKS = 0 ;‘);--設置外鍵失效 Course::truncate();--清空表 factory(‘App\Models\Course‘, 10)->create();--使用上一步定義的工廠模式10是生成的數量 }運行命令 php artisan db:seed --class=‘自己定義Seeder文件名‘
laraver框架學習------工廠模型填充測試數據