私はこのようなgraphqlファイルを作成しました:
type Field {
id: ID!
name_en: String!
name_fa: String!
description: String!
img_url: String!
created_at: DateTime!
updated_at: DateTime!
subFields: [SubField] @hasMany
}
extend type Query {
fields(input: ListInput @spread): [Field] @paginate(model: "App\\Models\\CustomerManagement\\BusinessInformation\\Field" defaultCount: 10)
field(id: ID! @eq): Field @find(model: "App\\Models\\CustomerManagement\\BusinessInformation\\Field")
}
extend type Mutation {
createField(
name_en: String! @rules(apply: ["required"])
name_fa: String
description: String
img_url: String
): Field @create(model: "App\\Models\\CustomerManagement\\BusinessInformation\\Field")
updateField(
id: ID! @rules(apply: ["required", "int"])
name_en: String @rules(apply: ["required"])
name_fa: String
description: String
img_url: String
): Field @update(model: "App\\Models\\CustomerManagement\\BusinessInformation\\Field")
deleteField(
id: ID! @rules(apply: ["required", "int"])
): Field @delete(model: "App\\Models\\CustomerManagement\\BusinessInformation\\Field")
}
Field
モデルを参照するたびに、App\\Models\\CustomerManagement\\BusinessInformation\\Field
全体を入力する必要があります。 model_namespace
のような変数を宣言して、大きなモデルの名前空間の代わりに使用できるかどうか疑問に思っていました。
編集:
https://lighthouse-php.com/4.4/api-reference/directives.html#namespace
@namespaceディレクティブを使用する必要があります
extend type Query @namespace(field: "App\\Blog") {
posts: [Post!]! @field(resolver: "Post@resolveAll")
}
いくつかのオプションがあります:基本的に、名前空間構成を使用してデフォルトの名前空間配列をロードできます: https://github.com/nuwave/lighthouse/pull/525/files
または、代わりにグループディレクティブを使用します。 https://lighthouse-php.com/3.0/api-reference/directives.html#group