Laravel 5.3 Factory 新方法 state

Laravel 5.3 教程:https://www.codecasts.com/ser...

在 Laravel 5.3 (具体版本是在 5.3.17 之后可以使用)的时候,Factory 模块新增了一个非常好用的方法 state(),这对于我们处理一些不同角色的时候非常有用,具体可以看下面的例子:

正常的,我们还是使用 define 来定义 factory:


$factory->define(App\User::class, function (Faker\Generator $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail
    ];
});

然后比如我们中有 admin 和 member等。我们可以这样:

1.声明 admin 的 state:

$factory->state(App\User::class, 'admin', function (Faker\Generator $faker) {
    return [
        'is_admin' => 1
    ];
});

2.声明 member 的 state:

$factory->state(App\User::class,'member', function (Faker\Generator $faker) {
    return [
        'is_member' => 1
    ];
});

最后,我们就可以在 tinker 的 factory 中这样使用:

1.执行 admin 的 states:

factory(\App\User::class, 2)->states('admin')->make()

命令行输出结果:

=> Illuminate\Database\Eloquent\Collection {#704
     all: [
       App\User {#695
         name: "Vivian Renner",
         email: "zoila85@example.org",
         is_admin: 1,
       },
       App\User {#694
         name: "Arden Macejkovic",
         email: "dwunsch@example.org",
         is_admin: 1,
       },
     ],
   }

2.执行 member 的 state :

factory(\App\User::class, 2)->states('member')->make()

命令行输出:

=> Illuminate\Database\Eloquent\Collection {#708
     all: [
       App\User {#699
         name: "Perry Feil",
         email: "rhoda.reinger@example.org",
         is_member: 1,
       },
       App\User {#703
         name: "Mr. Dario Jerde",
         email: "josh.kiehn@example.net",
         is_member: 1,
       },
     ],
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值