Laravel 不识别特征

Laravel does not recognize trait

我正在更改 AuthenticatesUsers.php 以在 postLogin 方法中使用 google recaptcha。

有特质

<?php

namespace App\Traits;

use Illuminate\Support\Facades\Input;
use ReCaptcha\ReCaptcha;

trait CaptchaTrait {
    public function captchaCheck()
    {
        ...
    }
}

我的 AuthenticatesUsers.php

开头
<?php

namespace Illuminate\Foundation\Auth;

use App\Traits\CaptchaTrait;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Lang;

trait AuthenticatesUsers
{
    use RedirectsUsers;
    use CaptchaTrait;
...
}

在登录页面,我得到这个错误

FatalErrorException in AuthenticatesUsers.php line 13: Trait
'App\Traits\CaptchaTrait' not found

不明白为什么。在 PhpStorm 中导入 class CaptchaTrait 时它会自动导入 App\Traits\CaptchaTraitAuthenticatesUsers.php

我错过了什么?

查看您的 composer.json 文件,了解有关 App 命名空间的更多信息。这是 app/ 目录 (PSR-4) 的 link。

所以命名空间 App\Traits 相当于目录 app/Traits,而不是 app/App/Traits。命名空间和目录必须与您的 composer 自动加载器中定义的相匹配,否则,它将不知道如何加载 class/trait/interface.