Kontroler zasobów RESTful
Relaksującego kontroler zasobów ustanawia niektórych trasach domyślnych dla ciebie, a nawet nazw nich.
Route::resource('users', 'UsersController');
Podaje te nazwane trasy:
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|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
Skonfigurowałbyś swój kontroler mniej więcej tak (akcje = metody)
class UsersController extends BaseController {
public function index() {}
public function show($id) {}
public function store() {}
}
Możesz także wybrać, które akcje są uwzględniane lub wykluczane w następujący sposób:
Route::resource('users', 'UsersController', [
'only' => ['index', 'show']
]);
Route::resource('monkeys', 'MonkeysController', [
'except' => ['edit', 'create']
]);
Dokumentacja kontrolera zasobów RESTful
Niejawny kontroler
Niejawny kontroler jest bardziej elastyczny. Zostaniesz przekierowany do metod kontrolera na podstawie typu i nazwy żądania HTTP. Jednak nie masz zdefiniowanych dla siebie nazw tras i spowoduje to przechwycenie wszystkich podfolderów dla tej samej trasy.
Route::controller('users', 'UserController');
Doprowadziłoby cię do skonfigurowania kontrolera z rodzajem schematu nazewnictwa 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'
}
}
Dokumentacja niejawnego kontrolera
Dobrą praktyką jest używanie tego, czego potrzebujesz, zgodnie z własnymi preferencjami. Osobiście nie lubię kontrolerów Niejawnych , ponieważ mogą być bałaganiarskie, nie podają nazw i mogą być mylące podczas używania php artisan routes
. Zwykle używam kontrolerów zasobów RESTful w połączeniu z jawnymi trasami.