在Laravel中,factory(3)->make()和factory()->count(3)->make()是一样的吗?它们似乎产生了相同的结果。
发布于 2021-10-21 22:01:16
将一个数字传递给工厂()方法或将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()方法更清楚一些,但它只有一个参数,一个指定应该生成的模型数量的整数。
您可以通过以下链接查看接口:https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Factories/Factory.html
https://stackoverflow.com/questions/67644485
复制相似问题