2013-12-12 5 views
8

Anstatt Route::get, Route::post usw. für meine Controller-Anfragen zu verwenden, entschied ich mich, die Route::controller Methode zu verwenden, hilft wirklich Codezeilen in route.php zu reduzieren.Laravel 4 Wie verwende ich den Routennamen Alias ​​(verwendet) mit Route :: Controller

Allerdings hatte ich vorher ein paar „route“ Namen einrichten, zum Beispiel meine vorherigen Code enthalten:

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

aber jetzt bin ich mit Route::controller ich weiß nicht, wie die Route Alias-Namen "implementieren Basisansicht ". Mein neuer Code sieht so aus:

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

Gibt es eine Möglichkeit, das kann ich tun?

+0

aber einen Alias ​​zu einer Route zu einem Controller zu machen würde keinen Sinn machen ... welche Methode wird aufgerufen, wenn Sie eine Route über den Alias ​​aufrufen? – reikyoushin

+0

Ich hatte gehofft zu spezifizieren, dass eine der Methoden innerhalb des Controllers eine benannte Route hat, ohne zwei Zeilen verwenden zu müssen, zum Beispiel wenn es ein Array innerhalb der Route :: Controller-Leitung gibt, die ich verwenden könnte. – james

Antwort

-1

Ok, also ist es nicht möglich, alles auf der Route: Controller-Leitung zu tun. Ich müsste mit beiden Zeilen gehen:

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

... was gut funktioniert. Ich hatte nur gehofft, dass es eine Möglichkeit, um festzulegen, dass eine der Methoden in der Steuerung eine benannte Route hat ohne zwei Linien

Danke trotzdem

+2

Sie sollten die Reihenfolge dieser beiden Zeilen so ändern, dass der 'Route :: get()' Vorrang hat. Wenn nicht, wird eine 'GET'-Anfrage an 'admin/base- rate/view' gestellt, die versucht, sie im' BaseRateController' zu finden. Es kann gut funktionieren, wenn Sie explizit den Routenalias verwenden, nicht jedoch für reguläre Anfragen. –

22

Sie können dies auf folgende Weise zu verwenden:

// 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

Hinweis: Dies funktioniert nicht, wenn Sie zur Standardaktion wechseln, z. Index mit/users (funktioniert nur mit/users/index) – Valdas

+0

Ich versuche es zu tun, aber ich bekomme den folgenden Fehler: Route [authpostlogin] nicht definiert. In meiner routes.php habe ich: Route :: controller ('/', 'AuthController', [ 'getLogin' => 'auth.getlogin', 'postLogin' => 'authpostlogin', ]); –

Verwandte Themen