【发布时间】:2020-04-20 03:15:12
【问题描述】:
我正在尝试建立 HasOne 关系以在 Laravel Lighthouse GraphQL 中工作。
它不起作用。突变不会给出错误,但也不会更新关系(员工 id 保持不变,而我希望它更改为 2):
mutation {
updateAccount(input: {
id: 12
employee: {
connect: 2
}
}) {
id
employee {
id
}
}
}
我的架构如下所示:
type Mutation {
updateAccount(input: UpdateAccount! @spread): Account! @update
}
input UpdateAccountInput {
id: ID!
employee: CreateEmployeeRelationInput @hasOne
}
input CreateEmployeeRelationInput {
connect: ID!
}
type Account {
id: ID!
...
employee: Employee! @hasOne
}
type Employee {
id: ID!
...
account: Account @belongsTo
}
Account 和 Employee 模型如下所示:
class Account extends Model
{
public function employee(): HasOne
{
return $this->hasOne(\App\Models\Employee::class, 'account_id');
}
}
class Employee extends Model
{
public function account(): BelongsTo
{
return $this->belongsTo(\App\Models\Account::class, 'account_id');
}
}
任何帮助或建议将不胜感激。
到目前为止,我尝试添加/删除@hasOne,或将ID! 更改为[ID!]!,但没有任何效果。
【问题讨论】:
-
您的
Account和Employee类型是什么样的? -
我已将
Account和Employee类型添加到问题中(仅显示相关的字段)。这些类型会有什么不同吗? -
我在您的代码中看到的唯一与我的不匹配的是您在输入中使用了
@hasOne指令。 -
你确定是一样的吗?如果我正确阅读了文档,那么我尝试做的事情在 Lighthouse 中是不可能的。我在这里打开了一个问题:github.com/nuwave/lighthouse/issues/1109。
标签: laravel graphql laravel-lighthouse