问题标签 [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 投票
0 回答
859 浏览

laravel - 为什么 Laravel Lighthouse GraphQL 运行多个 MySQL 查询(不是预先加载)?

我是 GraphQL 和 Lighthouse 的新手。

我从https://lighthouse-php.com/4.0/performance/n-plus-one.html#eager-loading-relationships的理解是,对于嵌套的 GraphQL 查询,“在幕后,Lighthouse 会将关系查询批处理在一起在单个数据库查询中。”

但是,我在日志中看到所有这些查询应该只有 1 个:

这是我的 GraphQL 查询:

我的 schema.graphql 有权利@belongsTo@hasMany指令:

我的 Laravel 模型具有所有正确的关系。例如,类 Post 有:

和类评论有:

等等。

0 投票
3 回答
478 浏览

laravel - 复杂的 Laravel、Graphql 和 Lighthouse 实现

我的问题涉及如何构建复杂的自定义解析器,以及为什么它们不能很好地与内置解析器配合使用。我找不到任何关于复杂解析器的好例子,而我的真实案例比这个例子还要复杂。

我有以下架构

例如我有这个查询

由于业务逻辑,我需要自定义解析器,但不是全部。以上工作(我故意为所有这些使用自定义解析器,我会稍微解释一下)但前提是我在第一个被正确调用的解析器中构建我的雄辩查询。像这样

如果我从自定义解析器开始,但查询中的某些内容使用了内置解析器,例如,如果更改

然后它仍然可以正常运行,但引入了 N+1 问题。因此,我可以在我的 mysql 日志中看到突然运行多个查询,如果我只有自定义或仅内置解析器,则不会发生这种情况。让自定义解析器调用内置解析器是不好的做法吗?

最好只为我的所有类型坚持自定义解析器吗?我构建自定义解析器的方法是否正确?(参考公共函数fetchAll代码片段)

0 投票
0 回答
1302 浏览

laravel - Laravel Lighthouse GraphQL:即使令牌存在请求标头,护照身份验证也不起作用

我正在做一个 Laravel 项目。我正在使用 Lighthouse 库构建 GraphQL API。我正在将此库用于 Passport 身份验证,https://github.com/joselfonseca/lighthouse-graphql-passport-auth。我可以使用该库中的端点并生成身份验证访问令牌。我事先安装并配置了 Passport。问题是,当我使用端点/查询受保护的突变时,它不起作用。即使令牌存在于标头中,它也总是返回 false 以检查用户是否已登录。

我有以下架构声明。

如您所见,它实际上是受“api”和“auth.restaurant-admin”中间件保护的突变。

以下是我的 auth.restaurant-admin 中间件实现。

auth()->check()即使标头中存在有效的访问令牌,该方法也始终返回 false。我在 GraphQL 操场上按如下方式传递令牌。

当我像这样从标头中检索令牌时,$request->header('Authorization'),我可以看到预期值。但是 auth()->check() 只是不起作用。我的代码有什么问题和缺失?我该如何解决?

0 投票
1 回答
3313 浏览

php - 带有 Laravel Lighthouse 的 GraphQL 解析器返回字符串而不是 JSON

您好我正在尝试创建一个返回 JSON 的解析器,我将此库与自定义标量一起使用https://github.com/mll-lab/graphql-php-scalars

我正在使用这样的 JSON 标量:

schema.graphql

测试解析器.php

GraphQL 游乐场

如您所见,它返回一个字符串,而不是 JSON ......我做错了什么?

0 投票
1 回答
242 浏览

laravel - 带有 Laravel Lighthouse 的 GraphQL @belogsTo 相同的模型

我正在尝试将 @belongsTo 关系与此测试表employees https://www.w3resource.com/sql-exercises/employee-database-exercise/index.php

我正在使用 Laravel + Lighthouse

这是我想要得到的回应


GraphQL-playground 查询:

架构.graphql


这是我的 App\Models\Employee.php

0 投票
1 回答
963 浏览

graphql - GraphQL - 查询返回多个结果

我收到错误查询返回了多个结果

GraphQL 游乐场

这是我的表https://www.w3resource.com/sql-exercises/employee-database-exercise/index.php

0 投票
1 回答
1061 浏览

reactjs - Laravel 灯塔当前用户通过下一个阿波罗为空

我有一个带有圣所和灯塔的 laravel 新副本。当我通过 axios 进行登录路由时,一切都按预期工作。通过 axios 登录后,我添加了一个lazyquery以尝试查询一些受保护的字段,但我未通过身份验证。我不知道为什么,我已经处理了三天。我真的很感谢你的帮助。

这有效

但是当我缩短它并更改为这个时,我会未经身份验证

unauthenticated当我添加指令并且我看到来自 axios 登录请求的令牌在标题中时,它会返回@guard......我不确定我在这里缺少什么我非常感谢你的帮助。

架构.graphql

.env

配置/cors.php

配置/灯塔

在我使用阿波罗的下一个应用程序中

创建.js

与Apollo.js

使用@guard 指令的查询结果

0 投票
1 回答
1425 浏览

php - lighthouse-php 查询自定义结果

当我向 graphQL 解析器添加一些自定义字段时,我没有得到任何答案

我的查询是:

在查询中,我定义了下一个模式:

提前致谢!

0 投票
1 回答
802 浏览

php - 尝试将 laravel lighthouse-php 与 Roadrunner Server 一起使用时遇到间歇性错误

  • 跑路者 1.8.1
  • Laravel:7.17.2
  • 灯塔:4.15.0

使用 NGINX 时,我的 GraphQL API/Schema 没有任何问题。但是,当我切换到 Roadrunner 时,我突然间断地收到如下错误:

有没有其他人经历过这个并找到了解决方案?

我确实启用了 opcache,但即使禁用了,我仍然遇到这个问题。

我已经运行了 php artisan lighthouse:validate-schema,它是有效的我也运行了 php artisan lighthouse:clear-cache,但无济于事

0 投票
1 回答
472 浏览

php - Laravel Lighthouse GraphQL 单元测试:“变量未定义”

我知道我的问题标题可能不是最有用的信息,所以如果我能以某种方式改进它,请告诉我:)。

我试图弄清楚如何在 PHP 单元测试中传递 GraphQL 变量而不将它们内联写入查询中。

这是一个演示代码。我无法给出确切的真实源代码,因为它属于客户项目。我希望这个简化的版本能够显示问题。

根据这个Lighthouse: Testing with PHPUnit指南,变量应该能够作为数组作为->graphQL()方法的第二个参数传递。

当我使用 运行测试时php vendor/bin/phpunit,我收到以下错误响应:

灯塔是最新版本:4.15.0

谢谢您的支持!:)