问题标签 [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.
laravel - Laravel Lighthouse GraphQL 在没有“输入:”的情况下创建突变
我正在寻找 Laravel Lighthouse 的文档,我看到了两种类型的突变。
- 包含字符串的突变
input:
(在此处找到)
还有另一个没有(在这里找到)的突变input:
我的问题是:如何在不input:
工作的情况下获得突变?
我尝试从文档中复制(修改)示例。但是如果我写一个这样的突变:
当我尝试省略input:
时,graphql-playground 抱怨:“需要CreateTaskInput类型的字段createTask参数输入,但未提供”
现在我尝试将架构更改为:
但随后服务器给出了一个ParseException
.
我确实更喜欢没有的语法,input:
因为它的重复性要少得多。有人可以帮忙吗?
php - Laravel Lighthouse - 按关系的属性对查询进行排序
使用像下面这样的模式,有没有办法执行查询并根据实体的name
属性对结果进行排序?JobType
我想要一个分页的工作列表,并按字母顺序显示按工作类型名称排序的结果。
我尝试使用该@builder
指令,然后使用构建器中的连接以这种方式引入 name 属性,但这似乎会导致实体 ID 出现一些问题,从而导致关系链接到错误的事物。
有任何想法吗?
php - PHP - LightHouse - ID 标量大小不够
我有一个带有大 int 主键的数据库表。当我的主键太大(如“xxxxxxxxxxxxxx”)时,我在灯塔 graphql 查询中总是得到相同的值:2147483647
有没有办法声明我的 ID 大小?喜欢id:ID! BigInt
laravel - 灯塔热切加载关系
我一直在尝试将我的旧 API 迁移到 GraphQl,我试图只加载一次,但是使用 graphql lighthouse 我找不到正确的方法
我的模型
以前我一直在使用 laravel jsonResources
使用这个有一个对元表的请求
但现在使用 graphql 它正在使每个数据库请求与每次$this->getMeta
调用我的模式
自定义类型
php - 使用保护的经过身份验证的用户出错并且可以访问某些模型
我正在使用 lighthouse-php 制作一个 graphql api,但在更改中间件(在新版本中将被弃用)指令来保护时遇到了麻烦。
使用此代码效果很好。我的意思是,系统会检查用户是否已登录,并检查用户是否可以访问他们的任务,但是当我尝试将指令更改为这样的@middleware
指令时@guard
:
始终返回用户未经身份验证。但是,在最后一种情况下,如果我删除 @can 指令,系统会检查用户是否已登录(但如果用户可以访问指定的任务,我需要检查策略)。
我正在使用这些版本的软件包:
有人尝试过这个麻烦吗?谢谢。
laravel - 如何像在 Provider 中注册路由一样,分别为所有模块注册 graphql?
我有带有子模块的 Laravel 项目我必须在每个模块中为单独的路由创建 graphql 文件。
如何像在 Provider 中注册路由一样,分别为所有模块注册 graphql?如何处理多个模块中的graphql文件?
phpunit - 使用订阅时使用 postGraphQL 进行 Lighthouse 测试失败
我有一个 laravel 包,它使用 GraphQL (Lighthouse) 来扩展我的基础项目。添加我的包和进行查询等时一切正常。
但是,由于我尝试在我的测试文件中发出postGraphQL请求,其中给定的查询或突变利用了@broadcast指令,所以请求失败并说:
这SubscriptionServiceProvider
启动测试环境时添加到应用程序配置提供者数组中。我使用 orchestra/testbench 并在getEnvironmentSetUp
方法中添加提供程序。
但我认为生成的postGraphQL请求没有SubscriptionServiceProvider
添加。我将其追溯到Illuminate\Foundation\Testing\Concerns\MakesHttpRequest
创建一个新内核对象的类,该对象执行请求并且似乎没有按应有的方式启动。
也许问题是我在一个 laravel 包中,而不是在一个“常规” laravel 项目中,在那里人们会定义SubscriptionServiceProvider
在config/app.php 中定义。
这是一个错误还是我错过了什么?这里有人也有这个问题吗?不幸的是,我在这里找不到任何东西或谷歌搜索。
graphql - Lighthouse/GraphQL - 在用于软删除的 GraphQL 模式中为多态关系获取“null”
我有一个平台可以让用户下载声音片段。声音剪辑的制作者可以查看他们的下载历史记录,但他们也可以删除他们不想再下载的文件。每个下载事件都有一个 DB 记录,该记录与两个不同的表具有多态关系,具体取决于声音剪辑类型。
我正在尝试组合一个 GraphQL 查询,该查询将返回选定日期范围内的下载统计信息,包括软删除文件的下载统计信息。Laravel 查询正在返回软删除记录,但软删除记录在 graphQL 端不可用。
LaravelDownload
模型(每个下载事件在此处创建一个记录) - 它可以是一个BirdSound
或一个HumanSound
记录:
LaravelBirdSound
模型(有一个等效HumanSound
模型)。对于可供下载的每个文件,此表中有一条记录:
GraphQL 架构:
获取数据的 Laravel 函数:
上面的 Laravel 查询返回下载信息和相关的可下载数据,无论它是否被软删除,并且使用上面描述的 graphQL 模式,我可以通过对象上downloadable
的MediaInfo
关系访问该Download
对象。但是,我无法弄清楚如何获得downloadable
在 graphQL 中可用的模型上定义的实际关系 - 关系总是显示null
.
我尝试了以下方法:
更改媒体类型:
添加trashed: Trash
到查询中(我假设它只是一维的,这就是它不起作用的原因):
...我尝试了上述示例的多种变体,所有这些都导致对象 anull
或downloadable
我收到错误。
查询示例:
"debugMessage": "@trashed 仅用于使用 SoftDeletes 特征的模型类。",
Laravel 模型都使用 SoftDeletes 特征,我找不到有关向 graphQL 类型添加特定特征的文档(例如:在我的BirdSound
类型中)。
我认为问题可能在于它是一种多态关系,但这是我使用 GraphQL 的第一个项目,我仍在努力了解一些细节......对此的任何见解都会很棒!
laravel - 如何在 Laravel/Lighthouse/Passport/Nuxt 应用程序上使用 Dusk 测试登录?
我已经用 Laravel 设置了一个 Nuxt 应用程序,在做太多之前我想设置 Dusk 测试。该应用程序/登录名运行良好,但我无法使其在自动化 Dusk 测试中运行。
它使用lighthouse-graphql-passport-auth和此处描述的设置。我认为问题可能与 Dusk 环境中的令牌生成有关。
这是我无法进行的示例测试:
所以我已经尝试了一些东西。例如,如果我在setUp()
方法中添加它:
我收到此错误:
我还尝试为 oauth_clients 添加与本地相同的信息。不幸的是,重定向是不同的(' http://local.test '用于本地,' http://apache '在黄昏测试时)。
这会返回这种错误:
我应该如何测试这个应用程序?一切都将在此登录屏幕后面,因此可能有一种方法,如果需要,我可以更改登录方法(可能不使用护照)。
laravel - 带有 GraphQl 分页的 Vue.js
我第一次在 vue.js 中使用 Graphql,但无法进行分页。
vue 组件如下所示:
品种.gql 看起来像这样:
但是,当我查看我的网络选项卡时,响应是这样的:
无法在类型“BreedPaginator”上查询字段“id”
我在这里做错了什么?
对于我的后端,我使用这个https://github.com/nuwave/lighthouse。
架构如下所示:
请帮帮我!