2014-06-12 13 views
5

qual è la differenza tra i metodi instradamento statico "risorsa" e "controller"laravel 4: differenza tra risorse e controllore in classe percorso

Route::controller() 

e

Route::resource() 

grazie,

+0

possibile duplicato del [laravel 4 - percorso :: risorsa vs Itinerario :: c ontroller. Quale usare?] (Http://stackoverflow.com/questions/19102534/laravel-4-routeresource-vs-routecontroller-which-to-use) – Vucko

+0

Penso che ci siano delle differenze qui, quando richiesta/url/create, Metodo Route :: resource request create(), ma metodo Route :: controller getCreate() metodo – mwafi

risposta

6

Ho qualcosa:

Route::resource() 
  • costringervi a usare i metodi predefiniti (index, create, store, s come, modificare, aggiornare, distruggere) senza la possibilità di aggiungere nuovi metodi nella classe controller (nessun modo per chiamare il nuovo metodo)

ma

Route::controller() 
  • consentono di definire i metodi illimitate all'interno classe controller
  • necessario definire verbo HTTP utilizzato prima il nome della funzione come (PostCreate, anyCreate)
0

Questo metodo rileva automaticamente i metodi "GET", "POST", "PUT/PATCH", "DELETE".

Route::resource() 

Questo metodo Rilevamento automatico argomento da URL

Route::controller() 

anche cercarlo: Laravel 4 : Route to localhost/controller/action

+0

Penso che entrambi interagiscano nello stesso modo (con i verbi HTTP) – mwafi

1

Si può leggere su questo nella documentazione ufficiale:

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

Route::controller() 

Sarà dichiarare tutte le rotte si definisce come funzioni di partenza per i verbi html, ad esempio dalla documentazione:

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

    class UserController extends BaseController { 

    public function getIndex() 
    { 
    // 
    } 

    public function postProfile() 
    { 
    // 
    } 

    public function anyLogin() 
    { 
    // 
    } 

} 

In altra parte:

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

Route::resource() 

è fondamentalmente utilizzato quando si utilizzare il comando create controller di artisan:

php artisan controller:make PhotoController 

Genera tutti i percorsi generati dal comando artigiano, fondamentalmente percorsi grezzi.

Spero che ti aiuti.

1

Ecco il percorso che si verifica quando si esegue entrambi:

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

Ecco una foto di quello che sto per scrivere nel testo per voi, se è più facile: "php artisan routes" result of the above routes

Il di seguito è un all-in-one. Ad esempio, se si GET a laravel_dir/test/page, verrà cercato il metodo getPage() in TestController.Se POST-laravel_dir/test/page, cercherà postPage()

URI: GET | HEAD | POST | PUT | PATCH | DELETE test/{_ mancante}

Percorso Nome: Nessuno

Azione: TestController @ missingMethod

Quello che segue è il risultato del percorso delle risorse ... Vedrai che è molto utile per CRUD in una riga per il tuo file routes.php.

URI: GET | TESTA othertest

Percorso Nome: othertest.index

Azione: OtherTestController @ indice


URI: GET | HEAD othertest/create

Percorso Nome: othertest.create

Azione: OtherTestController @ creare


URI: POST othertest

Nome Via: othertest.store

Azione: OtherTestController @ negozio


URI: GET | TESTA othertest/{} othertest

Percorso Nome: othertest.show

Azione: OtherTestController @ mostra


URI: GET | TESTA othertest/{} othertest/modificare

Percorso Nome: othertest.modificare

Azione: OtherTestController @ modificare


URI: PUT othertest/{} othertest

Nome Via: othertest.update

Azione: OtherTestController @update


URI: PATCH othertest/{} othertest

Nome Via: othertest.update (condivide il nome con la precedente)

Azione: OtherTestController @ aggiornare


URI: DELETE othertest/{} othertest

Percorso Nome: othertest.destroy

Azione: OtherTestController @ distruggere

Problemi correlati