2013-01-07 12 views
6

Sto cercando di registrare i miei controllori in laravel 4. In routes.php ho:Routing al controller non riesce a laravel 4

Route::get("/","[email protected]"); 
Route::get("search","[email protected]"); 

Ora, il percorso di controllo di casa va bene, ma il percorso di controllo di ricerca mi dà un errore:

ReflectionException: Class SearchController does not exist 

Tuttavia, la classe fa esiste. Ho anche provato a creare un altro controller di esempio, ma inutilmente, quando è venuto fuori lo stesso messaggio.

risposta

20

i nomi sono case sensitive in L4. E il nome del metodo deve corrispondere esattamente (ad es. GetIndex, non index()).

Inoltre, perché utilizza pacchetti di compositore, è necessario eseguire: php composer dump-autoload per rilevare eventuali nuove classi/controllori

+3

Grazie! è stato davvero il numero del compositore – Matanya

+0

Grazie mille .... – Sushil

2

ho avuto lo stesso problema e compositore dump-autoload non ha risolto esso.

Mi sono reso conto che il mio file di classe non è stato dichiarato in vendor/compositore/autoload_classmap.php generato da Composer.

Ho eliminato il contenuto della cartella cache. In Linux, questa cartella è: ~/.composer/cache e in Windows 7: C: \ Users \\ AppData \ Local \ Composer \ files Se bootstrap/compiled.php è presente, dovrebbe essere rimosso, o run: php artisan clear-compiled.

Dopo questo, ho rimosso composit.lock e la cartella del venditore ed eseguo: compositore install. Questo mettere il mio file di classe in autoload_classmap.php tuttavia la ReflectionException era ancora stato gettato ...

Come una prova finale, ho copiato e rinominato un altro controller dal progetto che era già in uso, e questo ha risolto il problema.

+0

Un modo semplice per fare lo stesso usando il compositore è commentare i riferimenti al controller in routes.php, eseguire '' 'php artisan dump''' e quindi non commentare questi riferimenti. – Ulterior

Problemi correlati