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;
的问题
此问题是config
和cache
设置之一,通过在终端中执行以下命令,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 应用程序测试我的路线。
我在将 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;
此问题是config
和cache
设置之一,通过在终端中执行以下命令,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 时发现了一个简单的想法,在
use App\Models\User
我有同样的错误。我的 config/auth.php 和 user.php 上的一切都很好。因此,我使用 运行 MySQL 服务器和 Xampp 解决了错误。所以,如果你有类似的错误 你可以试试 运行ning MySql.
就我而言,我在 Postman 上使用 Laravel 应用程序测试我的路线。