1. 程式人生 > >laraver框架學習------工廠模型填充測試數據

laraver框架學習------工廠模型填充測試數據

自己的 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框架學習------工廠模型填充測試數據