问题标签 [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 - 嵌套突变似乎在 Lighthouse 3.7 中不起作用
我正在尝试在 Lighthouse 3.7/Laravel 5.8 中设置模式我想要实现的是:用户应该能够创建 Clist。User 和 Clist 之间存在一对多关系。而且我正在尝试按照此处所述实现嵌套突变。
我已经实现了“查询”部分,它工作正常。但是当我在 GraphQL Playground 中测试 createClist 突变时,我得到了这个错误:
而且我无法弄清楚我做错了什么。
这是我的代码:
这是 GraphQL Playground 的截图:
php - Laravel Lighthouse GraphQL - 在服务器端排序
嗨,我是 GraphQL 的新手,我正在尝试根据列内容对数据进行排序。我有一个可以发送的查询端点:
结果是一个包含 20 个用户名的数组Foo
。但我想订购它们birthDate
。我已经尝试了很多东西,但我就是想不通。我已经尝试在 firstName 之前sort
和orderBy
之后,但我总是收到错误,例如:
我正在使用 Laravel Lighthouse 作为 GraphQL 的 wapper。我很惊讶我找不到有关如何执行此操作的任何信息。
我的查询:
php - 使用内容模拟上传的文件
我正在开发一个使用 GraphQL 和 Lighthouse 作为后端 API 的 Laravel 项目。对于某些端点,我们支持文件上传。我们已经成功地测试了这一点。
我们现在正在创建的新端点也将支持文件上传。但是,我们不能仅仅将文件存储在我们的服务器上,我们必须读取这个文件的内容并根据这个内容做一些事情。
当然,我们想测试这个新功能。但要做到这一点。我们必须模拟一个具有特定内容的上传文件来测试它。我能找到的只是一个UploadedFile::fake()
为你创建一个随机/空文件的假方法。
我知道我可以为此创建单元测试。但我真的很想添加一个端到端的测试。
官方的灯塔文档有以下代码示例:
我需要用我自己创建的模拟替换那个上传的文件。也许是这样的:
有什么内置方法可以设置假上传文件的内容吗?或者有什么方法可以用我自己的工厂逻辑扩展类?
laravel - 如何使用 Lighthouse 在 Laravel 5.8 中使用字段值过滤 Graphql 查询
我有可以创建列表的用户。列表可以加星标(如果您愿意,可以选择“精选”)。我想在 Lighthouse/Laravel 中构建一个 Graphql 查询,该查询将检索给定用户的所有加星标/精选列表。
我尝试了这个查询并且它有效:
然后我可以这样使用它:
但这对我来说就像一个肮脏的黑客。
我想要实现的是:
关于如何实施它的任何想法?
php - Lighthouse graphql 订阅
谁能告诉我如何使用 lighthouse graphql 订阅,我按照这里https://lighthouse-php.com/3.1/extensions/subscriptions.html的说明完成了所有步骤,但是当移动团队(android 和 ios)尝试使用它时,它要求他们输入 websocket 端点,所以我如何使用 graphql lighthouse 订阅制作这个 websocket,我一般都知道 laravel websocket,但是如何将这个 websockets 与 graphql lighthouse 订阅连接?
php - 如何在 GraphQL 中拥有一个数组类型的字段?
我需要在我的突变中的一个字段中输入多个 ID。我怎样才能实现看到数组不包含在标量类型中。我正在使用 Laravellighthouse
包。
我试图用来[]
传递 ID 但不工作。
我希望在我的解析方法中以数组的形式访问权限(在本例中为 ID)。
laravel - 使用订阅时,laravel-graphql-playground 无法连接到 UI 中的 websocket
我目前使用 Lighthouse 作为 laravel 的 graphql 服务器。我已经阅读了他们网站上的订阅文档(https://lighthouse-php.com/master/subscriptions/getting-started.html),并将适当的推送器凭据添加到 .env 文件中。
尝试通过 graphql-playground UI 订阅时,出现以下错误:
订阅:
错误:
所有突变和查询都在正常工作。
我已经覆盖了 laravel-graphql-playground laravel 的 index.blade.php 文件,并且可以向该文件添加一个“subscriptionEndpoint”变量,但不清楚该变量应该包含什么。
由于我通过推送器连接,有谁知道“subscriptionEndpoint”变量中应该包含什么?
laravel - 无法访问 GraphQL 服务器状态码 500
尝试使用 GraphQL Playground 时,似乎引用了缓存版本的 schema.graphql。因此,我继续运行php artisan cache:clear
,导致“无法访问服务器”和“错误”错误:“响应不成功:收到状态代码 500”。
我尝试运行php artisan cache:config
,但这并没有解决问题。
我希望能够连接,但它似乎不想连接。在运行之前连接不是问题php artisan cache:clear
,只是任何编写查询的尝试似乎都引用了旧的 schema.graphql,这不是预期的。
php - Laravel 和 Lighthouse,它总是读取默认模式
我正在关注 Lighthouse 网站上的主版本(4.1)教程。
https://lighthouse-php.com/4.1/getting-started/tutorial.html#installation
我重新安装了 Laravel 5.8,然后执行教程中编写的命令(旁边npm install
)
composer require nuwave/lighthouse mll-lab/laravel-graphql-playground
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider"
php artisan vendor:publish --provider="MLL\GraphQLPlayground\GraphQLPlaygroundServiceProvider"
之后/graphql/schema.graphql
创建一个文件(在项目根目录下,而不是在routes
以前版本的文件夹下)。
现在我用一些数据填充数据库,然后将模式从教程页面复制/粘贴到已发布的模式,启动服务器,然后访问显示发送请求的正确 url 的游乐场http://127.0.0.1:8000/graphql
。
单击Schema
选项卡时,我总是看到默认架构,而不是在 中发布的架构/graphql/schema.graphql
,当然,对不同于用户的资源的查询会失败,并出现类似的错误Cannot query field "posts" on type "Query".
。我已经尝试重新启动服务器并刷新 Playground 页面。
在config/lighthouse.php
文件中,模式注册到base_path('graphql/schema.graphql')
看起来正确的路径。
为什么 Playground 总是显示默认架构而不是已发布和编辑的架构?
我正在使用 PHP 7.2.14,而 Lighthouse 需要 PHP>7.1
laravel - GraphQL Where Select 子查询
这些天,我研究GraphQL
了Laravel
框架,灯塔图书馆。我试过做那种SELECT Query
。
结果,我不知道 GraphQL 可以选择下面的 SQL Query
我希望,客户端首先从这个查询中得到结果。
然后做第二个查询,我想我可以得到一个结果。
但我想知道我能从 1 个请求中得到结果。谢谢。