微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Laravel Lighthouse Resolver 中使用 toArray?

如何解决如何在 Laravel Lighthouse Resolver 中使用 toArray?

当我在查询构建器中使用 first() 时,我得到了结果。见:

public function __invoke($_,array $args)
{

  return MyTable::where('id',1)->first();
}

但是,当我将 first() 更改为 toArray() 时,我无法得到任何结果。见:

public function __invoke($_,1)->get()->toArray();
}

如何获得 toArray() 方法的结果?

即使我将 toArray() 方法与 get() 一起使用,它也不起作用!

当我使用 first() 方法时,结果就是这样

{
  "data": {
    "myTableResolver": {
      "column_1": 1,"column_2": "XYZ"
    }
  }
}

当我使用 toArray() 方法时,结果就是这样

{
  "data": {
    "myTableResolver": {
      "column_1": null,"column_2": null
    }
  }
}

解决方法

因为toArray()方法属于fetching query builder的集合结果, 您应该使用 get() 方法获取结果:

  return MyTable::where('id',1)->get()->toArray();
,

我想最好的方法是这样做:

return MyTable::find(1)->pluck('some_column')->toArray();

使用 pluck 您可以过滤您想要获取的列。

您也可以使用 find(1) 方法代替 where('id',1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。