在类型关系中使用模型访问器

时间:2020-04-07 20:06:11

标签: graphql laravel-lighthouse

我有一个架构,试图将日期范围参数传递给关系模型,其中关系模型具有为created_at日期定义的访问器。

灯塔类型:

type Widget {
    ...
    orderItemsPaginated(created_at: DateRange @whereBetween): [OrderItem]
        @morphMany(relation: "orderItems", type: "paginator")
    ...
}

小部件模型:

class Widget extends Model 
{
    public function orderItems(): MorphMany
    {
        return $this->morphMany(OrderItem::class, 'saleable');
    }
}

OrderItem模型:

class OrderItem extends Model 
{   
    public function getCreatedAtAttribute($value) 
    {
        return $this->order->created_at;
    }

    public function saleable() : MorphTo
    {
        return $this->morphTo();
    }

    public function order() : BelongsTo
    {
        return $this->belongsTo(Order::class);
    }

我想运行如下查询:

{
  widget(id:1616812) {
    name
    id
    orderItemsPaginated(
      first:10
      created_at: {
        from:"2019-01-01"
        to:"2020-01-01"
      }
    ) {
      data{
        id
        created_at
        order_status
      }
    }
}

但是上面的代码返回一个MySQL Column not found错误。也就是说,如果我将created_at范围移出查询,则查询将正确运行,并且数据中的created_at字段将正确返回。

所以我的问题是:我正在尝试做什至是可能的,还是我正在尝试做某种不可能完成的事情?

0 个答案:

没有答案