Class 更改命名空间时在 Laravel 中找不到“\App\User”

Class '\App\User' not found in Laravel when changing the namespace

我在将 User.php 移动到 Models/User.php

时遇到此错误

local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Fatal error: Class '\App\User' not found

vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php:126

您需要将 config/auth 中的 App\User 更改为 App\Models\User。php

转到 config/auth.php 并将 App\User:class 更改为 App\Models\User::class。

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],

同时更改 User.php 模型的命名空间

namespace App\Models;

这些答案不正确,您不需要将命名空间更改为 \App\Models\User。自动加载将加载模型文件夹,但 class 仍然可以是 class User,命名空间应该仍然是 App。你的文件是这样设置的吗?

namespace App;

class User extends Model {}

我终于能够通过更改以下代码来解决它。

 array (
        'driver' => 'eloquent',
        'model' => 'App\Models\User',
      ),

为我解决的是改变:

            'model' => '{YourAppName}\User',

您更改了文件的位置 user.php。

您的系统仍在旧位置寻找文件 user.php。您需要为系统提供通往文件的正确路径。

我猜你必须将代码从 'model' => App\User::class 更改为

'model' => App\Models\User::class,

如果您在 Laravel (php artisan make:auth) 上使用默认身份验证,则您已更改 app/Http/Controllers/Auth/

上的 RegisterController
use App\User;

use App\Models\User;

此外,对于其余功能,您更改了用户模型的名称空间:

namespace App\Models;

并更改 config/auth.php

'providers' => [
'users' => [
    'driver' => 'eloquent',
    'model' => App\Models\User::class,
],

重新加载作曲家自动加载 类。

composer dump-autoload

如果应用配置被缓存,可能无法获取新的配置,因为config:cache在清除和缓存配置之前报错,所以手动删除缓存:

rm bootstrap/cache/config.php

如果您使用 user.php 模型文件到文件夹 Models/user。php 那么您需要更改以下文件,这样您就不会收到任何错误

如果我们在 App\http 中创建模型文件夹,在哪里更改??

以下路径的更改者---

1 配置 - - auth.php - 搜索用户密钥更改 ---> app\user 到 app\Models\user

2 venedor/composer/ -autoload_classmap.php ----> 基本路径 (app\user TO app\Models\user) -autoload_static.php ----> 基本路径 (app\user TO app\Models\user)

检查您输入的内容是否代表您 class 的确切名称。我发现在我的一个控制器中我被导入 App\user 小写 "u" 而不是 App\User 大写 'u'

我解决了将 use App\User; 更改为 use MyAppName\User;

的问题

此问题是configcache设置之一,通过在终端中执行以下命令,90%的问题将得到解决

config:clear
cache:clear
config:cache

我只是将 use app\User 更改为 use App\User 并且有效

几天前我遇到了同样的问题。所以我这样做了:运行 这个命令

php artisan config:cache 
php artisan config:clear

它解决了我的 issue.Most 个问题。 我建议先尝试这个,如果这不能解决您的问题,那么再尝试其他技巧。

我在使用 Laravel 8x 时发现了一个简单的想法,在 的顶部使用。php

use App\Models\User

我有同样的错误。我的 config/auth.php 和 user.php 上的一切都很好。因此,我使用 运行 MySQL 服务器和 Xampp 解决了错误。所以,如果你有类似的错误 你可以试试 运行ning MySql.

就我而言,我在 Postman 上使用 Laravel 应用程序测试我的路线。