2015-02-19 3 views
10

Я очень новичок в Laravel и начал работу с Laravel 5. Я пытаюсь создать простое приложение для проверки подлинности пользователей с помощью Laravel.Laravel 5 - FatalErrorException: Class 'Пользователь' не найден

Я создал 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 массива ('тип' (=> '1', 'сообщение' => 'Class 'Пользователь' не найден', 'Файл' => «С : \ XAMPP \ HTDOCS \ urlshort \ приложение \ Http \ routes.php», 'строка' => '30')) в HandleExceptions.php линии 116 в HandleExceptions-> handleShutdown()

Перебрав несколько запросов в Google, я понял, что забыл загрузить пользовательский класс. Таким образом, я включил ссылку на файл с классом User в composer.json файле

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

я выполнил команду composer dump-autoload. Но я все равно получаю ту же ошибку. Я не могу понять, где мой код работал.

ответ

19

пытаются использовать

$user = new \App\User;

вместо

$user = new User;

+0

Только если класс пользователя находится в пространстве имен. Если это он, он может удалить «app/User.php» из своего composer.json – Arnaud

+0

Потому что он использует l5. Я думаю, что он использует default User.php в пространстве имен App, может быть. – xcerx

0

У меня был тот же вопрос, ответ на это не помогло, но я использовал

use App\Models\Access\User\User; вместо use User; в моем контроллере, и это сработало.