课程' \ App \ User'更改命名空间时在Laravel中找不到

时间:2016-03-06 00:06:18

标签: laravel laravel-5.2

User.php移至Models/User.php

时出现此错误
  

local.ERROR:Symfony \ Component \ Debug \ Exception \ FatalThrowableError:致命错误:   课程' \ App \ User'找不到

     

供应商/ laravel /框架/ SRC /照亮/认证/ EloquentUserProvider.php:126

16 个答案:

答案 0 :(得分:86)

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

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

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

namespace App\Models;

答案 1 :(得分:4)

这些答案不对,您无需将名称空间更改为\ App \ Models \ User。自动加载将加载模型文件夹,但类仍然可以是class User,命名空间仍应为App。它是如何在您的文件中设置的?

namespace App;

class User extends Model {}

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

为我解决的是改变:

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

答案 4 :(得分:2)

我使用的是 Laravel 8x 并在 .php

的顶部发现了一个简单的想法
use App\Models\User

答案 5 :(得分:1)

发生的事情是您更改了文件user.php的位置。

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

我想你必须从'model'=>更改代码App \ User :: class,到

'model'=>应用\模型\用户::类,

答案 6 :(得分:1)

如果您在Laravel(php artisan make:auth)上使用auth默认值,则已更改RegisterController上的app/Http/Controllers/Auth/

use App\User;

use App\Models\User;

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

namespace App\Models;

并更改config / auth.php

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

答案 7 :(得分:1)

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

composer dump-autoload

答案 8 :(得分:1)

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

如果在App \ http中创建模型文件夹,则更改位置

跟随路径中的转换器---

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

2 venedor / composer /         -autoload_classmap.php ---->基本路径(应用程序\用户到应用程序\模型\用户)         -autoload_static.php ---->基本路径(应用程序\用户到应用程序\模型\用户)

答案 9 :(得分:0)

您需要在config / auth.php

中将App \ User更改为App \ Models \ User

答案 10 :(得分:0)

如果应用程序配置已缓存,则可能无法获取新配置,因为config:cache在清除和缓存配置之前会出现此错误,因此只需手动删除缓存:

rm bootstrap/cache/config.php

答案 11 :(得分:0)

检查您的输入内容是否代表班级的确切名称。我发现在我的一个控制器中,我导入的是App\user小写为“ u”,而不是App\User的大写为“ u”

答案 12 :(得分:0)

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

的问题

答案 13 :(得分:0)

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

config:clear
cache:clear
config:cache

答案 14 :(得分:0)

我只需将使用应用程序\用户更改为使用应用程序\用户,即可使用

答案 15 :(得分:0)

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

php artisan config:cache 
php artisan config:clear

它解决了我的问题。大多数问题都由此解决。 我建议先尝试一下,如果这不能解决您的问题,请尝试其他方法。