Php Graphql自定义类型定义Laravel Lighthouse提供了有关缺少子类的错误

Php Graphql自定义类型定义Laravel Lighthouse提供了有关缺少子类的错误,php,graphql,laravel-lighthouse,Php,Graphql,Laravel Lighthouse,我复制了Lighthouse网站为自定义电子邮件类型链接到()的示例。(见下面的代码) 不幸的是,如果我现在去graphql游乐场,我会得到一个500错误,说明: “未找到标量电子邮件的GraphQL\Type\Definition\ScalarType的匹配子类” 如何解决此错误 (编辑:查看以下Enzo公证人的评论,了解真正的解决方案) 我通过以下方式修复了此问题: 在“composer.json”中,我将文件夹“graphql”(EmailType类文件在其中)添加到“autoload”中

我复制了Lighthouse网站为自定义电子邮件类型链接到()的示例。(见下面的代码)

不幸的是,如果我现在去graphql游乐场,我会得到一个500错误,说明: “未找到标量电子邮件的GraphQL\Type\Definition\ScalarType的匹配子类”

如何解决此错误

(编辑:查看以下Enzo公证人的评论,了解真正的解决方案)

我通过以下方式修复了此问题:

在“composer.json”中,我将文件夹“graphql”(EmailType类文件在其中)添加到“autoload”中的文件夹列表中:

"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories",
            "graphql"
        ]
    },
然后我使用了以下命令(我很确定最后一行是不需要的):


在此之后,al按预期工作。

它可以工作,因为使用
composer dump autoload
它可以“发现”所有类。但我认为很快或很晚你会遇到一些麻烦(特别是在你的生产环境中)。因此,我建议您修改标量的名称空间/路径,使其完全匹配并正常工作。例如,您可以将它放在
App\Graphql\Scalars
(以及文件夹
App/Graphql/Scalars
)中。我按照您的建议更改了名称空间。它现在可以在没有
composer dump autoload
的情况下工作。我没有意识到名称空间和文件名需要匹配。谢谢你指出这一点。
php artisan clear-compiled
composer dumpautoload
composer update