2015-02-19 13 views
10

Sono molto nuovo a Laravel e ho appena iniziato a configurare le cose con Laravel 5. Sto tentando di creare una semplice app di autenticazione utente con Laravel.Laravel 5 - FatalErrorException: Classe "Utente" non trovata

Ho creato register.blade.php che include il modulo per registrare l'utente.

Ecco il mio 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); 
}); 

Qui è la sezione di register.blade.php che crea modulo per la registrazione degli utenti.

{!! 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() !!} 

Viene visualizzato questo errore quando si fa clic sul pulsante Iscriviti nella pagina di registrazione.

in linea routes.php 30 a HandleExceptions-> fatalExceptionFromError (array ('tipo' => '1', 'message' => 'Classe 'utente' non trovato', 'file' => 'C : \ xampp \ htdocs \ urlshort \ app \ Http \ routes.php', 'linea'=> '30')), in linea HandleExceptions.php 116 a HandleExceptions-> handleShutdown()

Dopo aver attraversato alcuni query in Google, mi sono reso conto che mi sono dimenticato di caricare la classe User. Così, ho incluso collegamento al file con classe User in file di composer.json

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

ho eseguito il comando composer dump-autoload. Ma sto ancora ricevendo lo stesso errore. Non riesco a capire dove il mio codice è andato a lavoro.

risposta

19

tenta di utilizzare

$user = new \App\User;

invece

$user = new User;

+0

Solo se la classe Utente si trova in uno spazio dei nomi. Se è possibile rimuovere "app/User.php" dal suo compositore.json – Arnaud

+0

Perché usa l5. Penso che usi default User.php nell'app namespace, potrebbe essere. – xcerx

0

Ho avuto lo stesso problema, la risposta di cui sopra non ha aiutato, ma ho usato

use App\Models\Access\User\User; invece di use User; nel mio controller e ha funzionato.