2014-06-12 21 views
5

jaka jest różnica pomiędzy statycznymi metodami Route "zasobu" i "kontroler"laravel 4: różnica między zasobami i kontrolera w klasie Route

Route::controller() 

i

Route::resource() 

Dzięki,

+0

możliwe duplikat [laravel 4 - Droga :: zasobu vs Route :: c ontroller. Które użyć?] (Http://stackoverflow.com/questions/19102534/laravel-4-routeresource-vs-routecontroller-which-use-) – Vucko

+0

Myślę, że są pewne różnice tutaj, kiedy request/url/create, Metoda Route :: resource create(), ale prośba kontrolera Route :: getCreate() – mwafi

Odpowiedz

6

mam coś:

Route::resource() 
  • zmusić do korzystania z metod domyślnych (indeks, tworzenie, przechowywanie, s jak, edycja, zmiana, zniszczenie) w żaden sposób, aby dodać nowe metody w klasie kontrolera (nie sposób nazwać nową metodę)

ale

Route::controller() 
  • pozwalają zdefiniować nieograniczoną metod wewnątrz klasa kontrolera
  • konieczne określenie używane czasownik HTTP przed nazwą funkcji takich jak (postCreate, anyCreate)
0

Ta metoda automatycznie wykrywa metody "GET", "POST", "PUT/PATCH", "DELETE".

Route::resource() 

Metoda ta automatycznie wykrywa argumentu z URL

Route::controller() 

spojrzeć także: Laravel 4 : Route to localhost/controller/action

+0

Myślę, że oba oddziałują w ten sam sposób (z czasownikami HTTP) – mwafi

1

Można o tym przeczytać w oficjalnej dokumentacji:

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

Route::controller() 

To będzie zadeklarować wszystkie trasy można zdefiniować jako funkcji wyjścia dla czasowników html, przykład z dokumentacji:

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

    class UserController extends BaseController { 

    public function getIndex() 
    { 
    // 
    } 

    public function postProfile() 
    { 
    // 
    } 

    public function anyLogin() 
    { 
    // 
    } 

} 

W drugiej strony:

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

Route::resource() 

jest w zasadzie używany podczas użyj polecenia tworzenia kontrolera rzemieślnika:

php artisan controller:make PhotoController 

Generuje wszystkie trasy wygenerowane przez polecenie rzemieślnika, w zasadzie proste trasy.

Mam nadzieję, że to pomoże.

1

Oto routingu, który występuje podczas wykonywania zarówno:

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

Oto obraz tego, co mam zamiar napisać w tekście dla Ciebie, jeśli jest to łatwiejsze: "php artisan routes" result of the above routes

poniżej jest wszystko w jednym. Na przykład, jeśli masz GET do laravel_dir/test/page, będzie szukać metody getPage() w TestController.Jeśli POST do laravel_dir/test/page, to będzie szukać postPage()

URI: GET | HEAD | PO | PUT | łata | DELETE testowy/{_ brakuje}

Route Nazwa: Brak

Action: TestController @ missingMethod

Poniżej podano wyniki trasy zasobu ... Przekonasz się, że jest bardzo przydatna w przypadku CRUD w jednym wierszu pliku routes.php.

URI: GET | HEAD othertest

Route Nazwa: othertest.index

Action: OtherTestController @ indeksu


URI: GET | HEAD othertest/create

Route Nazwa: othertest.create

Action: OtherTestController @ tworzyć


URI: post othertest

Route Name: othertest.store

Action: OtherTestController @ sklep


URI: GET | HEAD othertest/{othertest}

Route Nazwa: othertest.show

Action: OtherTestController @ pokaż


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

Route Nazwa: othertest.edytować

Action: OtherTestController @ edycji


URI: PUT othertest/{othertest}

Route Nazwa: othertest.update

Akcja: OtherTestController @update


URI patch othertest/{othertest}

Nazwa trasy: othertest.update (akcje nazwę z powyższych)

Action: OtherTestController @ aktualizować


URI: DELETE othertest/{othertest}

Route Nazwa: othertest.destroy

Action: OtherTestController @ zniszczyć

Powiązane problemy