【发布时间】:2023-02-12 00:25:15
【问题描述】:
我正在使用 Laravel 9 和 Eloquent 对以下模型进行建模和播种:
- 组织(1-n)
- organizations_users(枢轴)
- 用户 (1-n)
为了播种该模型,我遵循了文档并使用了has() 和recycle() 方法。
database/seeders/DatabaseSeeder.php
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// Organisations et users
$organizations = Organization::factory()
->count(10)
->create();
$users = User::factory()
->recycle($organizations)
->has(Organization::factory()->recycle($organizations)->count(1))
->count(10)
->create();
}
当我使用 ->has(Organization::factory()->count(1)) 运行迁移时,我在数据库中得到 20 个组织而不是 10 个。
似乎 Organizations 没有为关系回收,并且为每个关系创建了一个新的 Organization 。
我究竟做错了什么?在播种用户和组织之后,我是否能够在单独的电话中播种关系?
【问题讨论】:
-
你设法弄明白了吗?我陷入了类似的境地。链接这些请求似乎失败了。
-
我最终创建了没有工厂但直接使用 Faker 和循环的模型。它不像文档中的那样,但它解决了问题
标签: laravel eloquent eloquent-relationship