최신판 |
당신의 편집 |
240번째 줄: |
240번째 줄: |
|
| |
|
| ===부분 리소스 라우트=== | | ===부분 리소스 라우트=== |
| 리소스 라우트를 선언할 때, 기본 설정된 전체 액션 집합 대신 컨트롤러가 처리해야 하는 액션의 부분집합을 지정할 수 있습니다:
| |
|
| |
| <syntaxhighlight lang='php'>
| |
| use App\Http\Controllers\PhotoController;
| |
|
| |
| Route::resource('photos', PhotoController::class)->only([
| |
| 'index', 'show'
| |
| ]);
| |
|
| |
| Route::resource('photos', PhotoController::class)->except([
| |
| 'create', 'store', 'update', 'destroy'
| |
| ]);
| |
| </syntaxhighlight>
| |
|
| |
| ;API 리소스 라우트
| |
| API에서 사용될 리소스 라우트를 선언할 때, <code>create</code>와 <code>edit</code>과 같은 HTML 템플릿을 제공하는 라우트를 제외하고 싶을 때가 많습니다. 편의를 위해, 이러한 두 라우트를 자동으로 제외하는 <code>apiResource</code> 메소드를 사용할 수 있습니다:
| |
|
| |
| <syntaxhighlight lang='php'>
| |
| use App\Http\Controllers\PhotoController;
| |
|
| |
| Route::apiResource('photos', PhotoController::class);
| |
| </syntaxhighlight>
| |
|
| |
| 배열을 <code>apiResources</code> 메소드에 전달하여 여러 API 리소스 컨트롤러를 한 번에 등록할 수 있습니다:
| |
|
| |
| <syntaxhighlight lang='php'>
| |
| use App\Http\Controllers\PhotoController;
| |
| use App\Http\Controllers\PostController;
| |
|
| |
| Route::apiResources([
| |
| 'photos' => PhotoController::class,
| |
| 'posts' => PostController::class,
| |
| ]);
| |
| </syntaxhighlight>
| |
|
| |
| <code>create</code>나 <code>edit</code> 메소드를 포함하지 않는 API 리소스 컨트롤러를 빠르게 생성하려면, <code>make:controller</code> 명령어를 실행할 때 <code>--api</code> 스위치를 사용하십시오:
| |
|
| |
| <syntaxhighlight lang='bash'>
| |
| php artisan make:controller PhotoController --api
| |
| </syntaxhighlight>
| |
|
| |
| ===중첩 리소스=== | | ===중첩 리소스=== |
| 때로는 중첩된 리소스에 대한 라우트를 정의해야 할 때가 있습니다. 예를 들어, 사진 리소스에는 사진에 첨부될 수 있는 여러 개의 댓글이 있을 수 있습니다. 리소스 컨트롤러를 중첩하려면 라우트 선언에서 "점(dot)" 표기법을 사용할 수 있습니다: | | 때로는 중첩된 리소스에 대한 라우트를 정의해야 할 때가 있습니다. 예를 들어, 사진 리소스에는 사진에 첨부될 수 있는 여러 개의 댓글이 있을 수 있습니다. 리소스 컨트롤러를 중첩하려면 라우트 선언에서 "점(dot)" 표기법을 사용할 수 있습니다: |