在Laravel 8中为单个实例播种多个多对多关系的正确方法是什么?

问题描述

我正在尝试创建一个模型实例,该实例已经通过此操作定义了一个以上的多对多关系:

 $meal = Meal::factory()
        ->hasAttached(Ingredient::factory(),['gram' => 100])
        ->hasAttached(Ingredient::factory(),['gram' => 200])
        ->create();

最后我在Meal表中输入了一个条目,在Ingredient表中输入了两个条目-很好。但是,我希望在数据透视表中也有两个条目(1x,'gram' = 100和1x,'gram' = 200)。但是,我最终得到了3条条目

我想知道第二个条目来自哪里。

+----+---------------+---------+------+
| id | ingredient_id | meal_id | gram |
+----+---------------+---------+------+
|  1 |             1 |       1 |  100 |
|  2 |             1 |       1 |  200 |
|  3 |             2 |       1 |  200 |
+----+---------------+---------+------+

建立这种关系的最佳方法是什么(最好是在使用新工厂方法的一次调用中)?将播种分为多个步骤是否更有意义,例如首先创建一个模型,然后附加关系?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)