Laravel三种模型之间的关系

时间:2019-09-10 09:19:45

标签: mysql laravel-5 eloquent eloquent--relationship

sold_items:
id    order_id   customer_id   name      
--    --------   -----------   ----
1     5          14            An object

orders:
id      po_num
--      ------
...     ...
5       123


customers:
id      name
--      ----
...     ...
14      John Doe

SoldItem有一个order_id和一个customer_id

我正在尝试通过hasOne定义Order及其Customer之间的 SoldItem 关系,而不必插入{ customer_id模型表中的{1}}列。

Order 似乎是解决方案,但我不知道从那里去哪里,或者甚至是答案?

hasOneThrough

2 个答案:

答案 0 :(得分:1)

用于客户模型

{

    public function sold_items()
    {
        return $this->hasMany('App\SoldItem');
    }


}

用于订单模型

{

    public function sold_items()
    {
        return $this->hasOne('App\SoldItem');
    }


}

针对SoldItem模型

{

    public function customer()
    {
        return $this->belongsto('App\Cutomer');
    }

     public function order()
    {
        return $this->belongsto('App\Order');
    }

}

我更喜欢先处理它们之间的关系,然后使用with()函数获取它们的值。

use App\Customer;

$customer = Customer::with('sold_items','sold_items.order')->get();

答案 1 :(得分:0)

我最终通过Customerattribute的{​​{1}}变成了Order的{​​{1}},

sold_items