Laravel使用两个模型关系来创建另一个模型对象

时间:2020-02-16 05:23:57

标签: laravel eloquent eloquent-relationship

有一个用户和设计模型,用户模型有很多预订模型,而设计模型也有很多预订模型。预购属于用户和设计。 (设计也会登录到用户)使用auth()-> user()-> designs()-> preorders()-> create创建预购订单时,预购订单未定义。

user model

design model

preorder model

error

preorder controller

1 个答案:

答案 0 :(得分:0)

由于用户可以有很多设计,因此Laravel无法知道应该将哪个design_id与要创建的预订相关联。

auth()->user()->designs()->preorders()->create([]); // Can't work because user has many designs. Which one should be used to create the preorder?

相反,您应该在设计上链接预创建方法:

$design->preorders()->create(['user_id' => auth()->id()]); // One design and one user specified: preorder can be created.

或在$ user上

auth()->user()->preorders()->create(['design_id' => auth()->id()]); // One design and one user specified: preorder can be created.