라라벨은 손쉽게 레스트풀 리소스 컨트롤러(RESTFul Resource Controllers) 를 만들수 있게 해줍니다.

artisan 에서 컨트롤러를 만들 경우 전 절에서 컨트롤러를 만들때 --plain 옵션을 지정하지 않을 경우 기본적으로 리소스 컨트롤러를 생성합니다. 

 

그러면 RESTFul 기반으로 주문을 처리하는 OrderController 를 생성해 봅시다.

$ php artisan make:controller OrderController --resource
CODE

라라벨 5.1 사용자는 리소스 컨트롤러가 기본이라 --resource 옵션을 제공하지 않습니다.

 

이제 라우트에 resource 키워드를 사용하여 컨트롤러를 등록하면 설정이 완료되며 web 미들웨어를 적용하기 위해 Route::group 에 포함 시켜야 합니다.

Route::group(['middleware' => ['web']], function () {
	Route::resource('orders', 'OrderController');
});
CODE

 

사용자의 요청과 HTTP 에 따라 다음 표와 같은 액션이 실행됩니다.

예로 GET http://homestead.app/orders/3/edit  을 보낼 경우 orders.edit 메소드가 호출되며 주문을 수정하는 페이지를 표시하게 됩니다.

수정된 주문을 갱신하기를 누르면  PUT http://homestead.app/orders/3 을 실행하고 주문을 갱신하게 됩니다.

HTTP경로동작라우트 명CRUD
GET/ordersindexorders.indexR
GET/orders/createcreateorders.createR
POST/ordersstoreorders.storeC
GET/orders/{id}showorders.showR
GET/orders/{id}/editeditorders.editR
PUT/PATCH/orders/{id}updateorders.updateU
DELETE/orders/{id}destroyorders.destroyD

 

리소스 컨트롤러의 경로에 따라 설정된 라우트는 다음 artisan 명령어로 확인해 볼 수 있습니다.

$ php artisan route:list
CODE