Ce este un Resource Controller in Laravel?

In acest articol vreau sa povestesc putin despre controllerele de tip resourse din laravel. 

Un controller de tip resourse este de fapt un controller care implementeaza toate metodele necesare unui CRUD (create, read, update, delete) pe o anumita resursa.

Puteti face un astfel de controller folosind comanda de artisan

php artisan make:controller ArticleController --resource

Aceasta comanda va va face un fisier nou, ArticleController, in folder-ul de cotnrollere cu urmatoarele metode definite: index, show, create, store, edit, update, destroy. 

Atentie, artisan-ul va va face numai un `schelet`, metodele nu vor fi implementate, asta este treaba voastra.

Acum ca am discutat despre controller, hai sa discutam despre rute. 
Putem creea rute pentru toate aceste metode cu o singura linie in fisierul routes/web.php

Route::resource('articles', 'ArticleController');

Aceasta linie de fapt va defini urmatoarele rute:

GET    /articles            ArticleController@index
GET    /articles/create     ArticleController@create
POST   /articles            ArticleController@store
GET    /articles/{id}       ArticleController@show
GET    /articles/{id}/edit  ArticleController@edit
PUT    /articles/{id}       ArticleController@update
DELETE /articles/{id}       ArticleController@destory

De asemenea, putem specifica exact ce rute ne sunt necesare folosind:

Route::resource('articles', 'ArticleController')->only(['index', 'show']);

sau pentru a exclude anumite rute

Route::resource('articles', 'ArticleController')->except(['create', 'store', 'update', 'destroy']);

Sper ca acest articol v-a fost util!

Avem un cod de conduita.
Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.