首页 > 解决方案 > factory(3)->make() 和 factory()->count(3)->make() 一样吗?

问题描述

在 Laravel 中,factory(3)->make()factory()->count(3)->make()? 它们似乎产生了相同的结果。

标签: phplaravellaravel-8

解决方案


将数字传递给factory() 方法或将count() 方法添加到工厂方法的结果是相同的。如果您在 tinker 上测试两者,您将获得应用工厂方法的模型的集合。

请记住,工厂方法不仅可以获取您希望集合拥有的模型数量,还可以将“状态”传递给模型。换句话说,您也可以修改模型的属性:

例如以下命令(在 tinker 上测试):

User::factory(1, ['name' => 'Ryan'])->make()

将为您提供以下结果:

=> Illuminate\Database\Eloquent\Collection {#3547
     all: [
       App\Models\User {#3546
         name: "Ryan",
         email: "nasir20@example.net",
         email_verified_at: "2021-10-20 00:13:23",
         #password: "$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi",
         #remember_token: "ww0qiqp9zQ",
       },
     ],
   }

count() 方法像一些建议的那样更清晰,但它只需要一个参数,一个指定应该生成的模型数量的整数。

您可以在此链接上查看 API: https ://laravel.com/api/8.x/Illuminate/Database/Eloquent/Factories/Factory.html


推荐阅读