위치 : app/Providers/RouteServiceProvider.php
Laravel 프레임워크 실행 순서.
1. /index.php
2. bootstrap/app.php
3. app/Http/Kernel.php
4. config/app.php
-> providers =[]; 의 내용을 읽어 들인다.
여기에 포함된 내용이 RouteServiceProvider 이다.
역할 : route 분배를 위해서 실행된다.
route 파일은 여러개로 분리해서 정리할 수 있다.
예제1.
// RouteServiceProvider
Route::middleware('web')
->group(base_path('routes/post.php'));
// /routes/post.php
Route::controller(\App\Http\Controllers\PostController::class)->group(function () {
Route::middleware('guest')->group(function () {
Route::get('/list', 'list')
->name('list');
Route::get('/show', 'show');
});
});
코드설명 :
post.php 파일을 만들고..라우팅을 설정한다.
여기는 'web' 미들웨어를 통과해야 한다.
또한 'guest' 미들웨어를 통과해야 한다.
주소가 http://localhost:8000/list 이다.
라우터 파일에 설정된 내용을 blade 파일에서는 어떤식으로 링크를 어떻게 만들 수 있을까?
->name('list') 로 지정되어 있다.
<a href="{{ route('list') }}">등록하기</a>
주소창에 /list 를 입력하면 잘 된다.
예제2.
만약에 Book 에 관련된 내용을 별도의 라우터 파일로 만들어서 관리하는 경우는 어떻게 처리하면 될까?
RouteServiceProvider 파일에 등록한다.
// RouteServiceProvider
Route::middleware('web')
->group(base_path('routes/book.php'));
// /routes/book.php
Route::controller(\App\Http\Controllers\BookController::class)->group(function () {
Route::get('/list', 'list')
->name('list');
Route::post('/show', 'show')
->name('show');
});
<a href="{{ route('list') }}">Book List</a>
하지만, PostController 과 동일하게 처리되어 /list 는 중복된다.
이때를 위해서 준비된 설정이 prifix, name 이다.
다음과 같이 수정해보자.
// RouteServiceProvider
Route::middleware('web')
->prefix('book')
->name('book')
->group(base_path('routes/book.php'));
이제부터 주소창에는 /book/list 가 되고
<a href="{{ route('book.list') }}">Book List</a>
가 된다.
참고하기
2023.10.21 - [Laravel] - Laravel - 라우트(Route) 핵심정리
Laravel - 라우트(Route) 핵심정리
기본라우터 위 파일은 App\Providers\RouteServiceProvider 에 의해서 자동으로 로드됨. 기본 명령어 php artisan route:list #미들웨어 같이 보기 php artisan route:list -v php artisan route:list --except-vendor php artisan route:li
digitalogia.tistory.com
'Laravel' 카테고리의 다른 글
Laravel - 기존사이트에 spatie/laravel-permission 적용순서 (0) | 2024.05.05 |
---|---|
Laravel - 유저권한 설정하기 Role, Permission (spatie/laravel-permission) (0) | 2024.03.11 |
Laravel - Factory, Seeder (테스트 User 생성하기) (0) | 2024.02.12 |
Laravel - Resource 컨트롤러에 대해서 (0) | 2024.01.31 |
Laravel - API Resource 만들기 (0) | 2024.01.31 |