Laravel属于多个人

时间:2014-08-07 13:54:16

标签: php laravel eloquent relationship

我有以下表结构

变为
ID

orders_payments
ID
turn_id
order_id

订单
ID

我希望获得与转弯相关的所有订单

所以

Class Turn{
  public function orders(){
      return ????
  }

}

你怎么能实现这一目标? 我尝试了hasmanythrough但它只在关系是级联时才有效

谢谢!

3 个答案:

答案 0 :(得分:6)

我想知道你为什么要努力工作并打电话给你的模特Turn和数据透视表order_payment

无论如何,你想要这个:

// Turn model
public function orders()
{
   return belongsToMany('Order', 'order_payment');
   // in case you would like to call your fkeys differently, use this:
   // return belongsToMany('Order', 'order_payment', 'payment_id', 'order_whatever_id');
}

// Order model
public function turns() // or payments() ?
{
   return belongsToMany('Turn', 'order_payment');
}

答案 1 :(得分:1)

您可以使用

public function orders()
{
    return $this->belongsToMany('Order');
}

然后你可以做

$orders = Turn::find(1)->orders;

答案 2 :(得分:1)

正如@lowerends指出的那样,这是一个BelongsToMany关系,因为我使用orderPayments表来获取更多我没有注意到的事情,直到他说,所以最后解决方案是以下

```

public function orders(){
    return $this->belongsToMany('Order','orders_payments','turn_id','order_id');
}

```