【问题标题】:Laravel Using two models relationships to create another model objectLaravel 使用两个模型关系创建另一个模型对象
【发布时间】:2020-02-16 05:23:57
【问题描述】:

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

user model

design model

preorder model

error

preorder controller

【问题讨论】:

  • 不,这是不可能的。你需要像 auth()->preorders()->create([ design_id=> $desitn_id]) 写一些类似的东西

标签: laravel eloquent eloquent-relationship


【解决方案1】:

由于一个用户可以有许多设计,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?

相反,您应该在设计上链接 preorder create 方法:

$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.

【讨论】:

    猜你喜欢
    • 2014-04-02
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2015-10-20
    • 2018-04-15
    相关资源
    最近更新 更多