php教程

超轻量级php框架startmvc

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

更新时间:2020-04-14 23:34:24 作者:startmvc
本文实例讲述了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();
 }
}