问题标签 [laravel-lighthouse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1027 浏览

laravel - Laravel Lighthouse GraphQL 在没有“输入:”的情况下创建突变

我正在寻找 Laravel Lighthouse 的文档,我看到了两种类型的突变。

还有另一个没有(在这里找到)的突变input:

我的问题是:如何在不input:工作的情况下获得突变?

我尝试从文档中复制(修改)示例。但是如果我写一个这样的突变:

当我尝试省略input:时,graphql-playground 抱怨:“需要CreateTaskInput类型的字段createTask参数输入,但未提供”

现在我尝试将架构更改为:

但随后服务器给出了一个ParseException.

我确实更喜欢没有的语法,input:因为它的重复性要少得多。有人可以帮忙吗?

0 投票
2 回答
1218 浏览

php - Laravel Lighthouse - 按关系的属性对查询进行排序

使用像下面这样的模式,有没有办法执行查询并根据实体的name属性对结果进行排序?JobType我想要一个分页的工作列表,并按字母顺序显示按工作类型名称排序的结果。

我尝试使用该@builder指令,然后使用构建器中的连接以这种方式引入 name 属性,但这似乎会导致实体 ID 出现一些问题,从而导致关系链接到错误的事物。

有任何想法吗?

0 投票
2 回答
250 浏览

php - PHP - LightHouse - ID 标量大小不够

我有一个带有大 int 主键的数据库表。当我的主键太大(如“xxxxxxxxxxxxxx”)时,我在灯塔 graphql 查询中总是得到相同的值:2147483647

有没有办法声明我的 ID 大小?喜欢id:ID! BigInt

0 投票
1 回答
153 浏览

laravel - 灯塔热切加载关系

我一直在尝试将我的旧 API 迁移到 GraphQl,我试图只加载一次,但是使用 graphql lighthouse 我找不到正确的方法

我的模型

以前我一直在使用 laravel jsonResources

使用这个有一个对元表的请求

但现在使用 graphql 它正在使每个数据库请求与每次$this->getMeta调用我的模式

自定义类型

0 投票
2 回答
962 浏览

php - 使用保护的经过身份验证的用户出错并且可以访问某些模型

我正在使用 lighthouse-php 制作一个 graphql api,但在更改中间件(在新版本中将被弃用)指令来保护时遇到了麻烦。

使用此代码效果很好。我的意思是,系统会检查用户是否已登录,并检查用户是否可以访问他们的任务,但是当我尝试将指令更改为这样的@middleware指令时@guard

始终返回用户未经身份验证。但是,在最后一种情况下,如果我删除 @can 指令,系统会检查用户是否已登录(但如果用户可以访问指定的任务,我需要检查策略)。

我正在使用这些版本的软件包:

有人尝试过这个麻烦吗?谢谢。

0 投票
2 回答
118 浏览

laravel - 如何像在 Provider 中注册路由一样,分别为所有模块注册 graphql?

我有带有子模块的 Laravel 项目我必须在每个模块中为单独的路由创建 graphql 文件。

如何像在 Provider 中注册路由一样,分别为所有模块注册 graphql?如何处理多个模块中的graphql文件?

0 投票
1 回答
187 浏览

phpunit - 使用订阅时使用 postGraphQL 进行 Lighthouse 测试失败

我有一个 laravel 包,它使用 GraphQL (Lighthouse) 来扩展我的基础项目。添加我的包和进行查询等时一切正常。

但是,由于我尝试在我的测试文件中发出postGraphQL请求,其中给定的查询或突变利用了@broadcast指令,所以请求失败并说:

SubscriptionServiceProvider启动测试环境时添加到应用程序配置提供者数组中。我使用 orchestra/testbench 并在getEnvironmentSetUp方法中添加提供程序。

但我认为生成的postGraphQL请求没有SubscriptionServiceProvider添加。我将其追溯到Illuminate\Foundation\Testing\Concerns\MakesHttpRequest创建一个新内核对象的类,该对象执行请求并且似乎没有按应有的方式启动。

也许问题是我在一个 laravel 包中,而不是在一个“常规” laravel 项目中,在那里人们会定义SubscriptionServiceProviderconfig/app.php 中定义。

这是一个错误还是我错过了什么?这里有人也有这个问题吗?不幸的是,我在这里找不到任何东西或谷歌搜索。

0 投票
1 回答
874 浏览

graphql - Lighthouse/GraphQL - 在用于软删除的 GraphQL 模式中为多态关系获取“null”

我有一个平台可以让用户下载声音片段。声音剪辑的制作者可以查看他们的下载历史记录,但他们也可以删除他们不想再下载的文件。每个下载事件都有一个 DB 记录,该记录与两个不同的表具有多态关系,具体取决于声音剪辑类型。

我正在尝试组合一个 GraphQL 查询,该查询将返回选定日期范围内的下载统计信息,包括软删除文件的下载统计信息。Laravel 查询正在返回软删除记录,但软删除记录在 graphQL 端不可用。

LaravelDownload模型(每个下载事件在此处创建一个记录) - 它可以是一个BirdSound或一个HumanSound记录:

LaravelBirdSound模型(有一个等效HumanSound模型)。对于可供下载的每个文件,此表中有一条记录:

GraphQL 架构:

获取数据的 Laravel 函数:

上面的 Laravel 查询返回下载信息和相关的可下载数据,无论它是否被软删除,并且使用上面描述的 graphQL 模式,我可以通过对象上downloadableMediaInfo关系访问该Download对象。但是,我无法弄清楚如何获得downloadable在 graphQL 中可用的模型上定义的实际关系 - 关系总是显示null.

我尝试了以下方法:

更改媒体类型

添加trashed: Trash到查询中(我假设它只是一维的,这就是它不起作用的原因):

...我尝试了上述示例的多种变体,所有这些都导致对象 anulldownloadable我收到错误。

查询示例:

"debugMessage": "@trashed 仅用于使用 SoftDeletes 特征的模型类。",

Laravel 模型都使用 SoftDeletes 特征,我找不到有关向 graphQL 类型添加特定特征的文档(例如:在我的BirdSound类型中)。

认为问题可能在于它是一种多态关系,但这是我使用 GraphQL 的第一个项目,我仍在努力了解一些细节......对此的任何见解都会很棒!

0 投票
1 回答
553 浏览

laravel - 如何在 Laravel/Lighthouse/Passport/Nuxt 应用程序上使用 Dusk 测试登录?

我已经用 Laravel 设置了一个 Nuxt 应用程序,在做太多之前我想设置 Dusk 测试。该应用程序/登录名运行良好,但我无法使其在自动化 Dusk 测试中运行。

它使用lighthouse-graphql-passport-auth和此处描述的设置。我认为问题可能与 Dusk 环境中的令牌生成有关。

这是我无法进行的示例测试:

所以我已经尝试了一些东西。例如,如果我在setUp()方法中添加它:

我收到此错误:

我还尝试为 oauth_clients 添加与本地相同的信息。不幸的是,重定向是不同的(' http://local.test '用于本地,' http://apache '在黄昏测试时)。

这会返回这种错误:

我应该如何测试这个应用程序?一切都将在此登录屏幕后面,因此可能有一种方法,如果需要,我可以更改登录方法(可能不使用护照)。

0 投票
1 回答
844 浏览

laravel - 带有 GraphQl 分页的 Vue.js

我第一次在 vue.js 中使用 Graphql,但无法进行分页。

vue 组件如下所示:

品种.gql 看起来像这样:

但是,当我查看我的网络选项卡时,响应是这样的:

无法在类型“BreedPaginator”上查询字段“id”

我在这里做错了什么?

对于我的后端,我使用这个https://github.com/nuwave/lighthouse

架构如下所示:

请帮帮我!