2015-03-27 20 views
8

Questo è il mio routes.php:percorso al controllore in sottocartella nella laravel 5

Route::get('/', 'Panel\[email protected]'); 

Questo è il mio cartelle:

Http/ 
....Controllers/ 
................Panel/ 
....................../PanelController.php 

Questo è il mio controller:

namespace App\Http\Controllers; 

class PanelController extends Controller { 

/* some code here... */ 

} 

Questo è quello che ottengo:

Class App\Http\Controllers\Panel\PanelController does not exist 

Ho provato il comando "compositore dump-autoload" ma ancora non funziona ...

risposta

18

Lo spazio dei nomi della classe deve corrispondere alla struttura della directory. In questo caso si deve regolare la classe e aggiungere Panel

namespace App\Http\Controllers\Panel; 
//        ^^^^^ 

use App\Http\Controllers\Controller; 

class PanelController extends Controller { 

/* some code here... */ 

} 
+0

Ancora stesso errore ... :( –

+0

sei scappato 'compositore discarica-autoload' nuovo – lukasgeiter

+0

sicuro:?/Forse qualcosa è cambiato in laravel 5 –

5

Segui tre semplici passi

  1. aggiungere il nome della cartella nello spazio dei nomi

    namespace App\Http\Controllers\Panel; 
    
  2. Aggiungi "utilizzare App \ Http \ controller \ controller;" dal controllore prima della definizione di classe

    namespace App\Http\Controllers\Panel; 
    use App\Http\Controllers\Controller; 
    
  3. Aggiungere il nome della cartella aggiunto quando si richiama il controllore in qualsiasi percorso

    Route::get('foo','Panel\[email protected]'); 
    

Non c'è bisogno di correre "compositore discarica-caricamento automatico"

+1

Solo piccole correzioni, rimuovere \ before Panel - 'Route :: get ('foo', 'Panel \ PanelController @ anyaction');' – user2432612

+0

Grazie user2432612, è stata applicata la correzione. –

0

È possibile generare un controller con una sottocartella semplice come:

php artisan make:controller Panel\PanelController 

Crea automaticamente spazi dei nomi e file appropriati con la directory. e di riferimento in percorsi proprio come accennato prima:

Route::get('/some','Panel\[email protected]'); 

codding Felice!

Problemi correlati