2013-01-07 21 views
6

Próbuję zarejestrować moje kontrolerów w laravel 4. W routes.php mam:Routing do kontrolera nie w laravel 4

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

Teraz trasa kontroler do domu jest w porządku, ale trasa kontroler wyszukiwania daje mi błąd:

ReflectionException: Class SearchController does not exist 

jednak klasa robi istnieje. Próbowałem nawet stworzyć kolejny kontroler próbek, ale bez skutku, gdy pojawiła się ta sama wiadomość.

Odpowiedz

20

w nazwach w L4 rozróżniana jest wielkość liter. Nazwa metody powinna być dokładnie taka sama (np. GetIndex, a nie index()).

Ponadto, ponieważ używa pakietów kompozytor, trzeba będzie uruchomić: php composer dump-autoload celu wykrycia nowych klas/controllers

+3

Dzięki! to był naprawdę problem z kompozytorem – Matanya

+0

Bardzo dziękuję ... – Sushil

2

Miałem ten sam problem i kompozytor dump-autoload nie go rozwiązać.

Zdałem sobie sprawę, że mój plik klasy nie został zadeklarowany w dostawcy/composer/autoload_classmap.php wygenerowanym przez Composer.

Usunąłem zawartość folderu pamięci podręcznej. W Linuksie ten folder to: ~/.composer/cache oraz w Windows 7: C: \ Users \\ AppData \ Local \ Composer \ files Jeśli bootstrap/compiled.php jest obecny, powinien również zostać usunięty, lub uruchom: php artisan clear-compiled.

Po tym usunąłem composer.lock i folder producenta i uruchom: instalator kompilatora. Po umieszczeniu pliku klasy w pliku autoload_classmap.php nadal wysyłano wyjątek ReflectionException ...

Jako ostatnia próba skopiowałem i zmieniłem nazwę innego kontrolera z projektu, który był już w użyciu, co rozwiązało problem.

+0

Prostym sposobem na to samo przy użyciu kompozytu jest odwołanie się do komentarza do kontrolera w routes.php, uruchomienie '' 'php artisan dump''' oraz następnie odtaj te odniesienia. – Ulterior

Powiązane problemy