[Laravel] Laravel group, prefix

Devbaul·2021년 8월 19일
0

Laravel

목록 보기
15/22
post-thumbnail

Laravel Group

  • 라우트 그룹을 사용하면 미들웨어와 같은 라우트 속성을 공유할 수 있어, 많은 수의 라우트를 등록할 때 각각의 개별 라우트에 매번 속성들을 정의하지 않아도 되게 해줍니다. 공유하려는 속성은 배열 형식으로 지정되어 Route::group메소드의 첫번째 인자로 전달됩니다.
  • 아직 미들웨어에 대한 내용은 배우지 않았으므로 저는 prefix로 해보려 합니다.

prefix()

  • prefix 메소드는 그룹안의 라우트에 특정 URI을 접두어로 지정할 때 사용합니다. 그룹의 모든 라우트 URI 앞에 admin 을 붙이고 싶다면 다음과 같이 지정하면 됩니다.

실습 코드

  • 기존에 fun/ 으로 되어 있던 URL을 모두 지워 줬습니다. 그렇지 않으면 fun/fun 이런식으로 두번 반복되어 URL이 나오게 됩니다.
  • 그걸 확인하기 위해서 는 php artisan route:list 라고 터미널에 입력하면 나오게 됩니다.

fun/ 제거 전

  • fun/fun/away 이런식으로 두번씩 나오는 것을 볼 수 있습니다.

Route::prefix('/fun')->name('fun.')->group(function() use($posts) {

    Route::get('responses', function() use($posts){
        return response($posts, 201)
            ->header('Content-Type', 'application/json')
            ->cookie('MY_COOKIE', 'kim bin', 3600);
    })->name('responses');
    
    Route::get('redirect', function () {
        return redirect('/contact');
    })->name('redirect');
    
    Route::get('back', function () {
        return back();
    })->name('back');
    
    Route::get('name-route', function () {
        return redirect()->route('posts.show', ['id' => 1]);
    })->name('name-route');
    
    Route::get('away', function () {
        return redirect()->away('https://google.com');
    })->name('away');
    
    Route::get('json', function () use($posts){
        return response()->json($posts); 
    })->name('json');
    
    Route::get('download', function () use($posts){
        return response()->download(public_path('/daniel.jpg'), 'face.jpg'); 
    })->name('download');
});

fun/ 제거 후

- 제거 하고 난 후에는 아래와 같이 fun/away와 같이 fun이 한번 출력되어 나오는 걸 확인 할 수 있습니다.

profile
자유로운 개발을 공부중

0개의 댓글