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

Laravel Using two models relationships to create another model object

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

user model

design model

preorder model

error

preorder controller

由于用户可以有很多设计,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.