2015-11-28 18 views
11

È possibile dire a Laravel che ho spostato il modello User.php?Come spostare laravel 5.1 User model in App Models User?

laravel 5,1

FatalErrorException in EloquentUserProvider.php line 126: 
Class '\App\User' not found 

davvero non era molto entusiasta di avere tutti i modelli alla radice della cartella App in laravel 5.1 così ho creato una nuova cartella e messo tutti i file modello di PHP all'interno di esso: \App\Models

ho alterato il controller auth per utilizzare la nuova use App\Models\User; e corretto tutti i file del modello all'interno della cartella del modello ..

Tuttavia quando carica la pagina ottengo l'errore di cui sopra.

(gli altri file di modello, naturalmente, lavoro bene così com'è il mio codice per accedervi, è solo la roba precompilati autenticazione da laravel 5.1)

risposta

15

per esempio, se si crea una cartella (ad esempio app/models), ci sono due modi per spostare i vostri modelli:

1) stile Laravel5 = Usa PSR4

Namespace tutti i file di modello con namespace App\Models; Accedi ai tuoi modelli ovunque con il loro pieno spazio dei nomi, ad esempio: \App\Models\User::find(1);

2) stile Laravel4

Caricare il modello con il compositore caricatore automatico. In composit.json aggiungi:

"autoload": { 
     "classmap": [ 
      "database", 
      "app/Models"    
     ], 
     ... 

Non è necessario spazio dei nomi dei modelli. Si trovano nel loro spazio dei nomi radice Nei file con lo spazio dei nomi è possibile accedervi come \ User :: find (1);

note extra:

  • Se si cambia tha spazio dei nomi di modello User si deve aggiornare config\auth.php =>'model'=> App\Models\User::class

  • Il modo più facile sbarazzarsi di lunghe namespace è quello di importare i modelli all'inizio dei file php, ad esempio: use App\Models\User;

Links:

+0

Se facciamo qualcosa di simile per l'utente :: trovare (1); e definire lo spazio dei nomi all'inizio (usare App \ Utente;). È ancora PSR4? –

7

È necessario modificare il file Project/config/auth.php su 'model'=> AppName\Models\User::class,