Php 拉雷维尔通过多重身份属于许多人

Php 拉雷维尔通过多重身份属于许多人,php,laravel,eloquent,relationship,Php,Laravel,Eloquent,Relationship,我有下面的表结构 转弯 身份证 订单\u付款 id 转弯id 订单号 订单 身份证 我想得到所有与回合有关的命令 所以 你如何做到这一点? 我尝试了hasmanythrough,但它只在关系处于级联状态时起作用 谢谢 您可以使用 public function orders() { return $this->belongsToMany('Order'); } 那你就可以了 $orders = Turn::find(1)->orders; 你可以用 public func

我有下面的表结构

转弯
身份证

订单\u付款
id
转弯id
订单号

订单
身份证

我想得到所有与回合有关的命令

所以

你如何做到这一点? 我尝试了
hasmanythrough
,但它只在关系处于级联状态时起作用

谢谢

您可以使用

public function orders()
{
    return $this->belongsToMany('Order');
}
那你就可以了

$orders = Turn::find(1)->orders;
你可以用

public function orders()
{
    return $this->belongsToMany('Order');
}
那你就可以了

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

正如@lowerends指出的,这是一种归属关系,因为我在使用orderPayments表处理更多的事情,直到他说我才注意到,所以最终的解决方案如下

```


```

正如@lowerends指出的,这是一种归属关系,因为我在使用orderPayments表处理更多的事情,直到他说我才注意到,所以最终解决方案如下

```


```

我想知道你为什么让你的生活变得艰难,把你的模型叫做
Turn
和pivot表
order\u 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');
}

我想知道你为什么让你的生活变得艰难,把你的模型叫做
Turn
和pivot表
order\u 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');
}

您确定
hasManyThrough('Order','Order\u payment')
不起作用吗?不起作用,它搜索
GS\u订单。Order\u payment\u id
不存在,您确定
hasManyThrough('Order','Order\u payment')
不起作用吗?不起作用,它搜索
GS\u订单。Order\u payment\u id
不存在,如果在
turn
中,我有
order\u id
字段,这将起作用,但在我的情况下,这将存储在
order\u payment
中,而不是直接存储在
turn
中,这对于
belongsTo
关系是正确的。因为您有一个
belongTomany
关系,所以您只需要pivot表,如果您遵循默认的Laravel命名约定,该表应该被称为
order\u turn
。在这里可以找到更多信息:如果在
turn
中我有
order\u id
字段,这将起作用,但在我的情况下,这将存储在
order\u payment
中,而不是直接存储在
turn
中,这对于
belongsTo
关系是正确的。因为您有一个
belongTomany
关系,所以您只需要pivot表,如果您遵循默认的Laravel命名约定,该表应该被称为
order\u turn
。在这里可以找到更多信息:示例中的表名错误,键顺序错误。@JarekTkaczyk_deczo_你是对的,刚刚更新的表名错误,键顺序错误。@JarekTkaczyk_deczo_你是对的,刚刚更新了它