• laraver框架学习------工厂模型填充测试数据


    在laravel中填充数据有几种方式。一种是Seeder,另一种是工厂模式进行的填充。

    工厂模式可以实现大批量的填充数据,数据的量可以自定义。这也为后续的软件测试提供方便。

    在laravel框架有database文件下有工厂模式的定义文件,可以在其后面定义自己的工厂模式,注意对自己model对应。

    $factory->define(AppModelsCourse::class,function (FakerGenerator $faker)
    {
        $faker=FakerFactory::create('zh_CN');--使用faker生成中文数据
        $category= AppModelsCategory::find(1);--进行数据库的查询
        $user=AppUser::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('AppModelsCourse', 10)->create();--使用上一步定义的工厂模式10是生成的数量
        }
    运行命令 php artisan db:seed --class='自己定义Seeder文件名'
    
    
    
     
  • 相关阅读:
    【转载】loadrunner使用system()函数调用Tesseract-OCR识别验证码遇到的问题
    实现LoadRunner多个场景的顺序执行(命令行)
    BAT批处理(一)
    BAT批处理(二)
    BAT批处理(五)
    BAT批处理(六)
    BAT批处理(三)
    BAT批处理(四)
    DOS工具
    python3.0与2.x之间的区别
  • 原文地址:https://www.cnblogs.com/ncut/p/6895152.html
Copyright © 2020-2023  润新知