php - Laravel-Lighthouse 范围未更新
问题描述
我有一个关于 Lighthouse 的查询,它正在使用@paginate
另外 3 个范围的范围
这是我的查询
profiles(where: _ @whereConditions(columns: ["email"])): [User!]! @paginate(scopes: ["byOrganizationLoggedIn","byMatchingRole", "byAvailableMatching"]) @middleware(checks: ["auth:api"])
这些是我来自用户实体的范围。
/**
* @param [type] $query
*/
public function scopeByOrganizationLoggedIn($query)
{
if ($organization = request()->user()->organization_id) {
$query->where('organization_id', $organization);
}
}
/**
* @param [type] $query
*/
public function scopeByMatchingRole(Builder $query)
{
if (request()->user()) {
$query->whereHas('roles', function ($q) {
$q->whereIn('name', ['Mentor', 'Mentee']);
});
}
}
/**
* @param [type] $query
*/
public function scopeByAvailableMatching(Builder $query)
{
if (request()->user()) {
$query->whereDoesntHave('matchedProfiles', function (Builder $q) {
$q->where('user_id', request()->user()->id);
});
}
}
问题是我的最后一个范围byAvailableMatching
没有被调用,如果我删除了其他范围之一,byOrganizationLoggedIn
或者byMatchingRole
它仍然进入实体方法。
我尝试使用重置灯塔缓存
php artisan lighthouse:clear-cache
但是查询和范围没有更新,它们返回相同的数据。
我是 Laravel 和 Lighthouse 的新手,如果您对按所有范围过滤查询有任何建议,请告诉我。
解决方案
推荐阅读
- javascript - 显示日期是一个 md-datepicker 字段
- laravel - Laravel 取消创建对象
- javascript - 带有自定义周标题的完整日历自定义议程周视图
- css - 如何在引导程序中减小放置项容器的大小
- ruby-on-rails-3 - NameError(未初始化的常量 Twitter::TextExtractor):
- java - 无法在我的代码中抛出 IllegalArgumentException
- docker - 通过 docker 文件安装 Gradle
- java - 等待构造函数内部的用户输入
- php - 为什么脚本中的 PHP 不起作用
- javascript - 在 php 中使用选择选项