没有不值得去解决的问题,也没有不值得去学习的技术!

Lighthouse 5 Error: Failed to Find Class Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator in Namespaces [App\\GraphQL\\Validators] for Directive @validator

在 Lighthouse 5 中,报错:Failed to find class Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator in namespaces [App\\GraphQL\\Validators] for directive @validator.

1. In Lighthouse 5, the error occurs: Failed to find class Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator in namespaces [App\\GraphQL\\Validators] for directive @validator. As shown in Figure 1

In Lighthouse 5, the error occurs: Failed to find class Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator in namespaces [App\\GraphQL\\Validators] for directive @validator.
Figure 1
Plaintext

PS E:\wwwroot\object> php artisan lighthouse:ide-helper
Wrote schema directive definitions to E:\wwwroot\object/schema-directives.graphql.

   Nuwave\Lighthouse\Exceptions\DefinitionException  : Failed to find class Modules\ThemeStore\Validators\ThemeAsset\CreateThemeAssetInputValidator in namespaces [App\GraphQL\Validators] for directive @validator.

  at E:\wwwroot\object\vendor\nuwave\lighthouse\src\Schema\Directives\BaseDirective.php:200
    196|         );
    197|
    198|         if (! $className) {
    199|             $consideredNamespaces = implode(', ', $namespacesToTry);
  > 200|             throw new DefinitionException(
    201|                 "Failed to find class {$classCandidate} in namespaces [{$consideredNamespaces}] for directive @{$this->name()}."
    202|             );
    203|         }
    204|

  Exception trace:

  1   Nuwave\Lighthouse\Schema\Directives\BaseDirective::namespaceClassName("Modules\ThemeStore\Validators\ThemeAsset\CreateThemeAssetInputValidator", Object(Closure))
      E:\wwwroot\object\vendor\nuwave\lighthouse\src\Validation\ValidatorDirective.php:151

  2   Nuwave\Lighthouse\Validation\ValidatorDirective::namespaceValidatorClass("Modules\ThemeStore\Validators\ThemeAsset\CreateThemeAssetInputValidator")
      E:\wwwroot\object\vendor\nuwave\lighthouse\src\Validation\ValidatorDirective.php:124

  Please use the argument -v to see more details.

2. Confirm that the class Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator has been migrated to Modules\\ThemeStoreGraphQl\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator. As shown in Figure 2

Confirm that the class Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator has been migrated to Modules\\ThemeStoreGraphQl\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator
Figure 2

3. After adjusting the class file path in the @validator directive to: Modules\\ThemeStoreGraphQl\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator, the error no longer occurs.

GraphQL

input ThemeAssetCreateInput @validator(class: "Modules\\ThemeStore\\Validators\\ThemeAsset\\CreateThemeAssetInputValidator") {
    "主题ID"
    themeId: String!,
    "内容"
    content: String!,
    "路径,相对于主题的路径,如 pages/index.blade.php"
    key: String!,
}

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系