2013-01-18 11 views
8

Korzystam z frameworka PHP Laravel i zastanawiam się nad kilkoma kwestiami. Domyślny plik application/routes.php zawiera to:Jak ustawić domyślny kontroler w Laravel?

Route::get('/', function() 
{ 
    return View::make('home.index'); 
}); 

To właśnie wyprowadza widok, ale jak mogę zadzwonić kontroler stamtąd?

Mogę usunąć całą powyższą trasę i zastąpić ją Route::controller('home'), która wydaje się używać kontrolera macierzystego pod domyślnym adresem URL (tj. example.com/). Ale jakikolwiek inny kontroler taki jak Route::controller('article') nie działa, tylko na example.com/article. Jak ustawić kontroler artykułu jako domyślny?

Odpowiedz

12

Wystarczy przejść kontroler jako ciąg znaków, z @ pomiędzy nazwa klasy i nazwa metoda:

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

Czytaj the docs (wskaż przykład przez tytuł Rejestrowanie trasy wskazujący na działania kontrolera).

+0

Dzięki, jakoś tęskniłem za tą częścią strony. A co powiesz na "dom"? Czy 'Route :: get ('/', 'home @ index')' jest takie samo jak 'Route :: controller ('home')'? – DisgruntledGoat

+0

@DisgruntledGoat - Nie. 'Route :: get ('/', 'home @ index')' zarejestruje tylko metodę indeksu i tylko na trasie '/'. 'Route :: controller ('home')' zarejestruje wszystkie swoje metody, zmapowane do odpowiednich adresów URL. –

+0

Jak działałyby te ostatnie? Jeśli zarejestrujesz cały kontroler na '/", to nie "/ przykład" stanie się niejednoznaczny, pomiędzy kontrolerem zwanym "przykładem" a metodą "przykładową" na kontrolerze domowym. – DisgruntledGoat

2

"/" to specjalna lokalizacja, którą można ustawić za pomocą Route::get('/','[email protected]').

Dla wszystkich innych działań na kontrolerze domu trzeba będzie urls takie ma „/home/action1” lub „/home/action2”.

Po prostu staram się zrozumieć, że nie ma żadnej korzyści i nie trzeba przypisywać żadnego kontrolera do "/".

Mam nadzieję, że odpowiedź jest jasna. Znowu nie jest to próba odpowiedzi na twoje pytanie, ale sugestia dla ciebie, jeśli utkniesz przy obsłudze trasy. Byłem na tym samym etapie, w którym jesteś kilka dni z powrotem :)

+2

To jest stary post, ale jest jednym z najlepszych w Google, więc komentuję go z tego powodu. Jeśli ktokolwiek to znajdzie, po ustawieniu kontrolera Route :: ('/', 'Controller') przerwiesz wszystkie pozostałe linki, dlatego nie jest dobrym pomysłem użycie domyślnego '/' dla trasy kontrolera –

Powiązane problemy