New in Laravel 5.3.17 is an improvement to Model Factories that you allow to define different “states” for a factory.

For example pretend you have a simple faker for creating a User:

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

Now you want to have the ability to define an administrator:

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

Then a moderator flag:

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

With these three set you can now call them like this:

// Create 5 users factory(\App\User::class, 5)->create(); // Create 5 Admins factory(\App\User::class, 5)->state('admin')->create(); // Create 5 Moderators factory(\App\User::class, 5)->state('moderator')->create(); // Create 5 Admins that are also moderators factory(\App\User::class, 5)->state('admin', 'moderator')->create(); Changes

Also, included with this release is a change to the collection only method:

Collection::only() now returns all items if $keys is null ( #15695 ) Bug Fixes: Added workaround for Memcached 3 onphp7 when using many() ( #15739 ) Fixed bug in Validator::hydrateFiles() when removing the files array ( #15663 ) Fixed model factory bug when $amount is zero ( #15764 , #15779 ) Prevent multiple notifications getting sent out when using the Notification facade ( #15789 )

The full Laravel changelog is available in the GitHub repo .

本文开发(php)相关术语:php代码审计工具 php开发工程师 移动开发者大会 移动互联网开发 web开发工程师 软件开发流程 软件开发工程师

主题: LaravelGitMemcachedGitHubPHP
tags: gt,User,class,App,faker,state,moderator,factory,Create,when
本文标题:In Laravel 5.3.17 Model Factories now include the ability for different states

技术大类 技术大类 | 开发(php) | 评论(0) | 阅读(135)