我具有以下结构:
Order
id
Order_Products
id
order_id
product_id
Products
id
我正在尝试使用hasManyTrough(https://laravel.com/docs/5.8/eloquent-relationships#has-many-through)。
我有类似的东西
class Order extends Model{
...
public function products()
{
return $this->hasManyThrough('App\Product', 'App\OrderProduct', 'product_id', 'id', 'order_id', 'id');
}
...
}
我无法使其正常工作。我很困惑,有人可以帮我吗。
答案 0 :(得分:0)
感谢蒂姆·刘易斯,我需要belongsToMany,因为order_products是数据透视表。像这样的东西。
a.T
# array([[2, 2, 0, 2, 3, 0, 2, 0, 0, 1],
# [0, 1, 2, 0, 1, 0, 3, 0, 0, 0]])
b.T
# array([[0, 0, 2, 1, 0, 0, 2, 2, 2, 3],
# [0, 0, 0, 0, 2, 0, 1, 3, 0, 1]])
mix(a, b, 6).T
# array([[2, 2, 0, 2, 3, 0, 0, 1, 0, 2],
# [0, 1, 2, 0, 1, 0, 0, 0, 0, 3]])
答案 1 :(得分:0)
在这种情况下,您需要使用belongsToMany
关系。
Has Many Through
的一些知识。表格:
Product
id
Order
id
product_id
Order_Category
id
order_id
在这种情况下,您可以获得Order Categories
的{{1}}
Product
Laravel做这样的事情。
class Product {
// ...
order_categories() {
return $this->hasManyThrough('App\Post', 'App\User');
}
// ...
}