2014-06-12 16 views
5

, was der Unterschied zwischen statischer Route Methoden "Ressource" ist und "Controller"Laravel 4: Differenz zwischen Ressource und Controller in Route Klasse

Route::controller() 

und

Route::resource() 

Dank,

+0

möglich Duplikat [Laravel 4 - Weg :: Ressource vs Strecke :: c Aufseher. Was zu verwenden?] (Http://stackoverflow.com/questions/19102534/laravel-4-routeresource-vs-routecontroller-which-zu verwenden) – Vucko

+0

Ich denke, es gibt einige Unterschiede hier, wenn Anfrage/URL/create, Route :: resource request create() Methode, aber Route :: Controller Anfrage getCreate() Methode – mwafi

Antwort

6

Ich habe etwas:

Route::resource() 
  • erzwinge die Verwendung der Standardmethoden (index, create, store, s wie, zu bearbeiten, zu aktualisieren, zerstören) ohne die Möglichkeit, neue Methoden in der Controller-Klasse (keine Möglichkeit, fügen Sie die neue Methode)

aber

Route::controller() 
  • können Sie unbegrenzt Methoden innen definieren, zu nennen Controller-Klasse
  • müssen verwendete HTTP-verb definieren, bevor Funktionsnamen wie (Postcreate, anyCreate)
0

Diese Methode erkennt automatisch die Methoden "GET", "POST", "PUT/PATCH", "DELETE".

Route::resource() 

Diese Methode automatische Erkennung Argument von URL

Route::controller() 

es aussieht auch: Laravel 4 : Route to localhost/controller/action

+0

Ich denke, dass beide auf die gleiche Weise interagieren (mit HTTP Verben) – mwafi

1

Sie dies in der offiziellen Dokumentation lesen:

http://laravel.com/docs/controllers#restful-controllers

Route::controller() 

Es werden alle Routen erklären Sie als Funktionen definieren für html Verben beginnend Beispiel aus der Dokumentation:

Route::controller('users', 'UserController'); 

    class UserController extends BaseController { 

    public function getIndex() 
    { 
    // 
    } 

    public function postProfile() 
    { 
    // 
    } 

    public function anyLogin() 
    { 
    // 
    } 

} 

In anderen Seite:

http://laravel.com/docs/controllers#resource-controllers

Route::resource() 

im Grunde, wenn Sie wird verwendet, Verwenden Sie den create controller Befehl von artisan:

php artisan controller:make PhotoController 

Erzeugt alle vom Handwerkerbefehl erzeugten Routen, im Wesentlichen Crud-Routen.

Ich hoffe, es hilft Ihnen.

1

Hier ist das Routing, die, wenn Sie beides auftritt:

Route::controller('test', 'TestController'); 
Route::resource('othertest', 'OtherTestController'); 

Hier ist ein Bild von dem, was für Sie in Text, den ich bin zu schreiben, wenn es einfacher ist: "php artisan routes" result of the above routes

Die Folgendes ist ein All-in-One. Wenn Sie beispielsweise GET bis laravel_dir/test/page suchen, wird nach der Methode getPage() in TestController gesucht.Wenn Sie POST-laravel_dir/test/page, wird es sucht postPage()

URI: GET | HEAD | POST | PUT | PATCH | DELETE Test/{_ fehlende}

Routenname: Keine

Aktion: Testcontroller @ missingMethod

Im Folgenden finden Sie die Ergebnisse der Ressourcenroute ... Sie werden sehen, dass es für CRUD in einer Zeile für Ihre Datei "routes.php" sehr nützlich ist.

URI: GET | HEAD othertest

Routenname: othertest.index

Aktion: OtherTestController @ Index


URI: GET | HEAD Otherest/create

Routenname: othertest.create

Aktion: OtherTestController @ erstellen


URI: POST othertest

Routenname: othertest.store

Aktion: OtherTestController @ store


URI: GET | HEAD othertest/{} othertest

Routenname: othertest.show

Aktion: OtherTestController @ zeigen


URI: GET | HEAD othertest/{othertest}/bearbeiten

Routenname: othertest.

Aktion bearbeiten: OtherTestController @ bearbeiten


URI: PUT othertest/{} othertest

Routenname: othertest.update

Aktion: OtherTestController @update


URI: PATCH othertest/{} othertest

Routenname: othertest.update (Aktien der Name mit dem oben)

Aktion: OtherTestController @ aktualisieren


URI: DELETE othertest/{} othertest

Routenname: othertest.destroy

Aktion: OtherTestController @ zerstören

Verwandte Themen