RESTful controllo delle risorse
Un controller risorsa RESTful stabilisce alcuni percorsi di default per voi e anche i nomi di loro.
Route::resource('users', 'UsersController');
si dà a questi percorsi denominati:
Verb Path Action Route Name
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
e si sarebbe configurare il controller qualcosa di simile (actions = metodi)
class UsersController extends BaseController {
public function index() {}
public function show($id) {}
public function store() {}
}
È anche possibile scegliere quali azioni sono compresi o esclusi in questo modo:
Route::resource('users', 'UsersController', [
'only' => ['index', 'show']
]);
Route::resource('monkeys', 'MonkeysController', [
'except' => ['edit', 'create']
]);
RESTful Resource Controller documentation
controllore implicito
Un controllore implicito è più flessibile. Viene instradato ai metodi del controller in base al tipo e al nome della richiesta HTTP. Tuttavia, non hai definito i nomi delle rotte per te e catturerà tutte le sottocartelle per lo stesso percorso.
Route::controller('users', 'UserController');
Vuoi portare a configurare il controller con una sorta di schema di denominazione RESTful:
class UserController extends BaseController {
public function getIndex()
{
// GET request to index
}
public function getShow($id)
{
// get request to 'users/show/{id}'
}
public function postStore()
{
// POST request to 'users/store'
}
}
Implicit Controller documentation
E 'buona norma usare quello che vi serve, secondo la vostra preferenza. Personalmente non mi piacciono i controller impliciti, perché possono essere disordinati, non fornire nomi e possono confondere quando si utilizza php artisan routes
. In genere utilizzo i controller di risorse RESTful in combinazione con percorsi espliciti.
Solo una nota per gli utenti di Laravel 5.2, mentre i controller impliciti sono deprecati. – Roy
Route :: codice add-back controller: https://github.com/shrimpwagon/laravel-route-controller – shrimpwagon