欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Laravel5.1 框架模型工厂ModelFactory用法实例分析

程序员文章站 2022-07-22 12:51:48
本文实例讲述了laravel5.1 框架模型工厂modelfactory用法。分享给大家供大家参考,具体如下: 今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍...

本文实例讲述了laravel5.1 框架模型工厂modelfactory用法。分享给大家供大家参考,具体如下:

今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍过seeder,当我们使用模型访问数据时 可以用模型工厂搭配seeder使用。

1 编写一个modelfactory

modelfactory的路径在 database/factories/ 下:

// 这是系统自带的工厂
$factory->define(app\user::class, function ($faker) {
  return [
    'name' => $faker->name,
    'email' => $faker->email,
    'password' => str_random(10),
    'remember_token' => str_random(10),
  ];
});

// 这是我们写的工厂
$factory->define(app\article::class, function (faker\generator $faker) {
  return [
    'title' => $faker->sentence,
    'body' => $faker->paragraph,
    'comment_count' => rand(1,50),
  ];
});

2 在seeder中使用

编写完模型工厂后就可以在seeder中使用了:

class articlesseeder extends seeder
{
  /**
   * run the database seeds.
   *
   * @return void
   */
  public function run()
  {
    factory(\app\article::class, 10)->create();
  }
}

class databaseseeder extends seeder
{
  /**
   * run the database seeds.
   *
   * @return void
   */
  public function run()
  {
    model::unguard();
    $this->call('articlesseeder');
    model::reguard();
  }
}