Laravel 5 - 致命错误:找不到“User”类

13

我对Laravel非常的陌生,最近才开始使用Laravel 5,现在正试图用Laravel创建一个简单的用户认证应用程序。

我已经创建了register.blade.php,其中包含用于注册用户的表单。

这是我的routes.php文件:

Route::post('/register', function()
{
$user = new User;  
$user->email = Input::get('email');
$user->username = Input::get('username');
$user->password = Hash::make(Input::get('password'));
$user->save();
$theEmail = Input::get('email');
return View::make('thanks')->with('theEmail', $theEmail);
});

这是 register.blade.php 的部分代码,用于创建用户注册表单。

{!! Form::open(array('url' => 'register')) !!}
       {!! Form::label('email', 'Email Address') !!}
       {!! Form::text('email') !!}

       {!! Form::label('username', 'Username') !!}
       {!! Form::text('username') !!}

       {!! Form::label('password', 'Password') !!}
       {!! Form::password('password') !!}

       {!! Form::submit('Sign Up') !!}
{!! Form::close() !!}

在注册页面点击“注册”按钮时出现以下错误:

在 routes.php 的第30行 HandleExceptions->fatalExceptionFromError(array('type' => '1', 'message' => 'Class 'User' not found', 'file' => 'C:\xampp\htdocs\urlshort\app\Http\routes.php', 'line' => '30')) in HandleExceptions.php line 116 HandleExceptions->handleShutdown()

经过在谷歌上的一些查询,我意识到我忘记加载 User 类。因此,在 composer.json 文件中加入了链接到包含 User 类的文件。

    "autoload": {
    "classmap": [
        "database",
        "app/User.php"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},

我运行了 composer dump-autoload 命令。但是我仍然收到相同的错误。我无法弄清楚我的代码哪里出了问题。


有相同的问题,您能帮忙吗? - Abubakr Elghazawy
3个回答

26

尝试使用

$user = new \App\User;

代替

$user = new User;


只有当User类在命名空间中时才能这样做。如果是的话,他可以从composer.json中删除“app/User.php”。 - Arnaud
因为他使用了L5,我认为他可能使用了命名空间为App的默认User.php。 - xcerx

1

输入 App\Models\User,这对我起了作用。


1
我遇到了相同的问题,上面的答案没有帮助,但是我在我的控制器中使用 use App\Models\Access\User\User; 而不是 use User;,它起作用了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接