【发布时间】:2021-05-09 20:18:11
【问题描述】:
有 3 种模型:订单、产品和价格
每个订单有很多产品,每个产品都有一个价格,它取决于订单 的 price_group_id 字段。
class Order extends Model
{
public function products() {
return $this->belongsToMany(Product::class)->withPivot(['quantity']);
}
}
class Product extends Model
{
public function price() {
return $this->hasOne(Price::class)->where('price_group_id', '=', $this->pivot->pivotParent->price_group_id);
}
}
Price 模型具有 id、product_id、price_group_id 和 value 字段。
我使用 $this->pivot->pivotParent 在 Product 模型中检索 Order 的 price_group_id 属性它在 Laravel 中运行良好,但不适用于 Lighthouse 查询:“尝试获取非对象的属性 'pivotParent'”。好像根本没有pivot和pivotParent。
有没有什么方法可以获取父主元属性或者其他方式来实现这种关系?
GraphQL 架构的一部分:
type Query {
orders: [Order!]! @all
order(id: ID! @eq): Order @find
}
type Order {
id: ID!
price_group_id: ID!
}
type Product {
id: ID!
price: Price @hasOne
}
type Price {
id: ID!
value: Float!
price_group_id: ID!
}
【问题讨论】:
标签: laravel eloquent graphql laravel-lighthouse