2013-12-12 16 views
8

Zamiast używania Route::get, Route::post itp. Dla żądań kontrolera, zdecydowałem się użyć metody Route::controller, naprawdę pomaga zredukować linie kodu w route.php.Laravel 4 sposób korzystania z aliasu nazwy trasy (używa) z Route :: controller

Jednak Wcześniej skonfigurować niektóre nazwy „Trasa”, na przykład mój poprzedni kod obejmowały:

Route::get('admin/baserate/view', array('as' => 'baserateview','uses'=>'[email protected]')); 

ale teraz używam Route::controller nie wiem jak zaimplementować alias trasy " baserateview ". Mój nowy kod wygląda następująco:

Route::controller('admin/baserate', 'BaserateController'); 

Czy mogę to zrobić?

+0

ale posiadanie aliasu do trasy do kontrolera nie miałoby sensu .. która metoda jest wywoływana wtedy, gdy wywołujesz trasę przez jej alias? – reikyoushin

+0

Miałem nadzieję, że określę, że jedna z metod wewnątrz kontrolera ma nazwaną trasę bez konieczności użycia dwóch linii, na przykład, jeśli w linii Route :: kontroler mógłbym wykorzystać tablicę. – james

Odpowiedz

-1

OK, więc nie można tego zrobić na linii Route: controller. Będę musiał przejść z obu linii:

Route::controller('admin/baserate', 'BaserateController'); 
Route::get('admin/baserate/view', array('as' => 'baserateview','uses'=>'[email protected]')); 

... który działa dobrze. Miałem tylko nadzieję, że nie będzie to sposób na określenie, że jedną z metod wewnątrz sterownika posiada nazwie trasy bez konieczności korzystania z dwóch linii

tak dzięki

+2

Powinieneś zmienić kolejność tych dwóch linii, aby pierwszeństwo miało 'Route :: get()'. Jeśli nie, po wywołaniu 'GET' na polecenie' admin/baserate/view' spróbuje znaleźć to w 'BaserateController'. Może to działać poprawnie, gdy jawnie używasz aliasu trasy, ale nie dla zwykłych żądań. –

22

Można to zrobić w następujący sposób:

// User Controller 
Route::controller(
    'users', 
    'AdminUserController', 
    array(
     'getView'  => 'admin.users.view', 
     'getEdit'  => 'admin.users.edit', 
     'getList'  => 'admin.users.list', 
     'getAdd'  => 'admin.users.add', 
     'getUndelete' => 'admin.users.undelete', 
     'postDelete' => 'admin.users.delete' 
    ) 
); 
+0

Uwaga: to nie działa, jeśli przejdziesz do akcji domyślnej, np. indeks z/users (działa tylko z/users/index) – Valdas

+0

Próbuję to zrobić, ale pojawia się następujący błąd: Route [authpostlogin] nie jest zdefiniowany. W moim routes.php zrobiłem: Route :: controller ('/', 'AuthController', [ 'getLogin' => 'auth.getlogin', 'postLogin' => 'authpostlogin', ]); –

Powiązane problemy