목차
-
기본 명령어
-
웹사이트 링크 주소 만들기
-
1. 직접 파일 연결하기 (redirect 시키기)
-
2. View()를 통해서 연결시키기
-
3. get()를 통해서 연결시키기 - callback 함수 이용
-
4. 컨트롤러를 통해서 연결시키기
-
5. 컨트롤러 group으로 묶어서 이용해서
-
6. 컨트롤러 Resource 로 처리하기
-
Request 객체와 파라미터 넘겨받기
-
라우트 메서드
-
라우트 바인딩
-
라우트 이름 정하기
-
Primary key 가 아니라 다른 키를 사용하고 싶을때 ?
-
자식 바인딩 범위 지정이 가능하다.
-
현재의 Route 정보 확인하기
-
라우트 캐싱 및 클리어
기본라우터

위 파일은 App\Providers\RouteServiceProvider 에 의해서 자동으로 로드됨.
기본 명령어
php artisan route:list
#미들웨어 같이 보기
php artisan route:list -v
php artisan route:list --except-vendor
php artisan route:list --only-vendor
웹사이트 링크 주소 만들기
/resources/routes/web.php 에서 변경, 추가한다.
1. 직접 파일 연결하기 (redirect 시키기)
Route:redirect('Url', '경로 또는 주소')->name('명칭');
Route::redirect('/hello', '/hello.php')->name('hello');
Route::redirect('/naver', 'https://www.naver.com')->name('naver');
2. View()를 통해서 연결시키기
# /resources/views/welcome.blade.php
Route::view('/welcome', 'welcome');
Route::view('/welcome', 'welcom', ['name'=>'Taylor']);
# /resource/vies/notices/all.blade.php
Route::view('/notices', 'notices.all')->name('notices.all');
3. get()를 통해서 연결시키기 - callback 함수 이용
Route::get('greeting', function() {
return 'Hello World';
});
Route::get('/', function () {
return view('welcome');
});
4. 컨트롤러를 통해서 연결시키기
# NoticeController의 list() 함수가 실행됨.
Route::get('notice.list', [NoticeController::class, 'list'])->name('notice.list');
5. 컨트롤러 group으로 묶어서 이용해서
Route::controller(ItemController::class)->group(function(){
Route::get('items', 'index')->name('items.index');
Route::post('items', 'store')->name('items.store');
Route::get('items/create', 'create')->name('items.create');
Route::get('items/{item}', 'show')->name('items.show');
Route::put('items/{item}', 'update')->name('items.update');
Route::delete('items/{item}', 'destroy')->name('items.destroy');
Route::get('items/{item}/edit', 'edit')->name('items.edit');
});
6. 컨트롤러 Resource 로 처리하기
Route::resource('items', ItemController::class);
Controller 만들기 명령어.
php artisan make:controller ItemController --resource --model=Item
Request 객체와 파라미터 넘겨받기
Route::get('/users', function(Request $request) {
//....
});
Route::get('/user/{id}', function(Request $request, $id) {
return //
});
#http://localhost/posts/123/comments/1
Route::get('posts/{post}/comments/{comment}', function($postid, $commnetid) {
return $postid . $commentid;
});
# 선택적 파라미터
Route::get('/user/{name?}', function($name = null) {
return $name;
});
#파라미터 제약하기
Route::get('/user/{name}', function ($name) {
//
})->where('name', '[A-Za-z]+');
#정규표현식을 간단하게 만들어주는 키워드
->whereNumber();
->whereAlpha();
->whereAlphaNumeric();
->whereUuid();
라우트 메서드
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Route::match()
Route::any()
Route::redirect();
Route::permanentRedirect()
Route::view();
Route::resource();
라우트 바인딩
use App\Models\User;
Route::get('users/{user}', function (User $user) {
return $user->email;
});
Route::get('/users/{user}', [UserController::class, 'show']);
// Controller show 메서드 형식
public function show(User $user)
{
return view('user.profile', ['user'=>$user]);
}
# {user} $user 묵시적으로 바인딩 된다.
라우트 이름 정하기
Route::get('/user/profile', function() {
//
})->name('profile');
라우트 이름 사용하기
$url = route('profile');
return redirect()->route('profile');
# 파라이터 지정하기
$url = route('profile', ['id'=>1]);
라우트 이름 접두어 사용하기
Route::name('admin.')->group(function() {
Route::get()->name('users');
});
라우트 확인하기
$request->route()->named();
라우터 그룹만들기
prefix, middleware, controller, domain
Route::prefix
Route::prefix('admin')->group(function() {
Route::get('/users', function() {
// Matches The "/admin/users" URL
});
});
Route::middleware
Route::middleware()->group(function () {
Route::get();
Route::get();
});
Route::controller
Route::controller(OrderController::class)->group([
Route::get('/orders/{id}', 'show');
]);
Route::domain
Route::domain('{account}.example.com')->group(function(){
Route::get('user/{id}', function($account, $id) {
//
});
});
Primary key 가 아니라 다른 키를 사용하고 싶을때 ?
use App\Models\Post;
# slug 컬럼의 키값으로 찾음.
Route::get('/posts/{post:slug}', function(Post $post) {
return $post;
});
# slug 컬럼으로 키를 변경됨.
# 또는 모델에서 getRouteKeyName() 오버라이드 시켜서 변경 가능함.
public function getRouteKeyName() {
return 'slug';
}
자식 바인딩 범위 지정이 가능하다.
use App\Models\Post;
use App\Models\User;
UserID 로 Post 데이타 select 됨.
Route::get('/users/{user}/posts/{post}', function(User $user, Post $post) {
return $post;
})->scopeBindings();
# 또는
Route::scopeBindings()->group();
현재의 Route 정보 확인하기
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
라우트 캐싱 및 클리어
php artisan route:cache
php artisan route:clear
'Laravel' 카테고리의 다른 글
Laravel - 테스트용 데이타 자동으로 입력하기 (db:Seed, Factory) (0) | 2023.11.14 |
---|---|
Laravel - Splade (Single Page Application) (0) | 2023.10.21 |
Laravel - 데이타 입력, 수정, 삭제 익히기 / Bootcamp Chirper with Blade (0) | 2023.10.20 |
Laravel - 프로젝트 시작하기 (0) | 2023.10.19 |
Laravel - .env 환경설정 알아보기 (0) | 2023.10.19 |
기본라우터

위 파일은 App\Providers\RouteServiceProvider 에 의해서 자동으로 로드됨.
기본 명령어
php artisan route:list
#미들웨어 같이 보기
php artisan route:list -v
php artisan route:list --except-vendor
php artisan route:list --only-vendor
웹사이트 링크 주소 만들기
/resources/routes/web.php 에서 변경, 추가한다.
1. 직접 파일 연결하기 (redirect 시키기)
Route:redirect('Url', '경로 또는 주소')->name('명칭');
Route::redirect('/hello', '/hello.php')->name('hello');
Route::redirect('/naver', 'https://www.naver.com')->name('naver');
2. View()를 통해서 연결시키기
# /resources/views/welcome.blade.php
Route::view('/welcome', 'welcome');
Route::view('/welcome', 'welcom', ['name'=>'Taylor']);
# /resource/vies/notices/all.blade.php
Route::view('/notices', 'notices.all')->name('notices.all');
3. get()를 통해서 연결시키기 - callback 함수 이용
Route::get('greeting', function() {
return 'Hello World';
});
Route::get('/', function () {
return view('welcome');
});
4. 컨트롤러를 통해서 연결시키기
# NoticeController의 list() 함수가 실행됨.
Route::get('notice.list', [NoticeController::class, 'list'])->name('notice.list');
5. 컨트롤러 group으로 묶어서 이용해서
Route::controller(ItemController::class)->group(function(){
Route::get('items', 'index')->name('items.index');
Route::post('items', 'store')->name('items.store');
Route::get('items/create', 'create')->name('items.create');
Route::get('items/{item}', 'show')->name('items.show');
Route::put('items/{item}', 'update')->name('items.update');
Route::delete('items/{item}', 'destroy')->name('items.destroy');
Route::get('items/{item}/edit', 'edit')->name('items.edit');
});
6. 컨트롤러 Resource 로 처리하기
Route::resource('items', ItemController::class);
Controller 만들기 명령어.
php artisan make:controller ItemController --resource --model=Item
Request 객체와 파라미터 넘겨받기
Route::get('/users', function(Request $request) {
//....
});
Route::get('/user/{id}', function(Request $request, $id) {
return //
});
#http://localhost/posts/123/comments/1
Route::get('posts/{post}/comments/{comment}', function($postid, $commnetid) {
return $postid . $commentid;
});
# 선택적 파라미터
Route::get('/user/{name?}', function($name = null) {
return $name;
});
#파라미터 제약하기
Route::get('/user/{name}', function ($name) {
//
})->where('name', '[A-Za-z]+');
#정규표현식을 간단하게 만들어주는 키워드
->whereNumber();
->whereAlpha();
->whereAlphaNumeric();
->whereUuid();
라우트 메서드
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Route::match()
Route::any()
Route::redirect();
Route::permanentRedirect()
Route::view();
Route::resource();
라우트 바인딩
use App\Models\User;
Route::get('users/{user}', function (User $user) {
return $user->email;
});
Route::get('/users/{user}', [UserController::class, 'show']);
// Controller show 메서드 형식
public function show(User $user)
{
return view('user.profile', ['user'=>$user]);
}
# {user} $user 묵시적으로 바인딩 된다.
라우트 이름 정하기
Route::get('/user/profile', function() {
//
})->name('profile');
라우트 이름 사용하기
$url = route('profile');
return redirect()->route('profile');
# 파라이터 지정하기
$url = route('profile', ['id'=>1]);
라우트 이름 접두어 사용하기
Route::name('admin.')->group(function() {
Route::get()->name('users');
});
라우트 확인하기
$request->route()->named();
라우터 그룹만들기
prefix, middleware, controller, domain
Route::prefix
Route::prefix('admin')->group(function() {
Route::get('/users', function() {
// Matches The "/admin/users" URL
});
});
Route::middleware
Route::middleware()->group(function () {
Route::get();
Route::get();
});
Route::controller
Route::controller(OrderController::class)->group([
Route::get('/orders/{id}', 'show');
]);
Route::domain
Route::domain('{account}.example.com')->group(function(){
Route::get('user/{id}', function($account, $id) {
//
});
});
Primary key 가 아니라 다른 키를 사용하고 싶을때 ?
use App\Models\Post;
# slug 컬럼의 키값으로 찾음.
Route::get('/posts/{post:slug}', function(Post $post) {
return $post;
});
# slug 컬럼으로 키를 변경됨.
# 또는 모델에서 getRouteKeyName() 오버라이드 시켜서 변경 가능함.
public function getRouteKeyName() {
return 'slug';
}
자식 바인딩 범위 지정이 가능하다.
use App\Models\Post;
use App\Models\User;
UserID 로 Post 데이타 select 됨.
Route::get('/users/{user}/posts/{post}', function(User $user, Post $post) {
return $post;
})->scopeBindings();
# 또는
Route::scopeBindings()->group();
현재의 Route 정보 확인하기
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
라우트 캐싱 및 클리어
php artisan route:cache
php artisan route:clear
'Laravel' 카테고리의 다른 글
Laravel - 테스트용 데이타 자동으로 입력하기 (db:Seed, Factory) (0) | 2023.11.14 |
---|---|
Laravel - Splade (Single Page Application) (0) | 2023.10.21 |
Laravel - 데이타 입력, 수정, 삭제 익히기 / Bootcamp Chirper with Blade (0) | 2023.10.20 |
Laravel - 프로젝트 시작하기 (0) | 2023.10.19 |
Laravel - .env 환경설정 알아보기 (0) | 2023.10.19 |