SKILL/LARAVEL

라우팅

Jedy_Kim 2017. 11. 21. 20:11
728x90

들어가기에 앞서 웹은 웹 서버와 웹 브라우저가  HTTP 프로토콜을 이요해서 HTML과 같은 파일을 주고받는 기술이다.

반면, 인터넷은 컴퓨터와 컴퓨터를 연결하는 거대한 네트워크로 엄격히 말하면 웹과는 다르다. 

웹은 인터넷 위에서 동작한다.

-출처:라라벨로 배우는 실전php 웹 프로그래밍-


경로 : resource/views/welcome.blade.php

<h1>Hello World~!</h1>

(참고 기존 welcome.blade.php파일안의 body내용은 모두 지운다.)


로컬서버 구동 $php artisan serve
3



 브라우저에서 웹 서버 루트(/) 요청을 했는데, welcome.blade.php와 관련된 어떤 힌트도 제공하지 않았는데 

이 뷰가 로드되었다.

요청 Url에 따라 적절한 패스로 연결시켜주는 것이 바로 Routing이 하는 역할이다.


아래 경로를 살펴 보자.

경로 : route/web.php

Route::get('/', function () {

return view('welcome');

});                                      

     

'/' 요청이 오면, function 으로 싸진 Closure가 동작한다는 의미이다.

Closure 안을 보면, view()라는 function에 'welcome'이란 인자를 넘겨서 반환된 값을 다시 반환한다.

'welcome'이란 인자는 resources/views/welcome.blade.php 라는 것을 알 수 있다.

즉, Closure에서 반환된 값이 Http 응답으로 전달된다.


+@라우팅과 HTTP응답

Closure에서 view() 대신 문자열을 반환하면 반환된 문자열이 출력될 것이다.

아래 경로를 살펴 보자.

경로 : route/web.php

Route::get('/', function () {

return '<h1>Hello Foo</h1>';

});                                      

사실 Closure에게 HTTP 요청을 넘기고 나면 라우팅이 해야 할 일은 끝난다. 

HTML 뷰나 문자열을 반환하는 것은 Contorller 가 하는 일이다.


+@URL 파라미터

Url로 넘어온 파라미터를 참조하는 법. 중괄호 ({파라미터_이름}) 을 이용한다.

아래 경로를 살펴 보자.

경로 : route/web.php 

Route::get('/{foo}', function ($foo) {

    return $foo;

}); 


+@라우트 이름

라우트에 이름을 부여하면 컨트롤러 로직에서 다른 라우트로 리디렉션하거나, 

뷰에서 다른 라우트로 이동하는 링크를 만들 때 편리하다.

예를 들어, articles라고 이름 지은 URL 경로를 어는 날 갑자기 posts로 변경해야 한다고 할 때

URL 경로를 코드에 직접 쓰지 않고 매핑된 이름을 쓴다면,

전부 수정하는 수고를 덜 수 있다.


사용법: Route::get() 메서드의 두 번째 인자의 배열 원소에 'as' => '라우트_이름'

아래 경로를 살펴 보자.

경로 : route/web.php 

Route::get('/{foo}', [

'as' => 'home',

function () {

    return '제 이름은 home입니다.';

}

]); 


Route::get('/home', function () {

    return redirect(route('home'));

}); 

 

                  

                 


반응형

'SKILL > LARAVEL' 카테고리의 다른 글

블레이드  (0) 2017.11.25
일반 php로 알아보는 페이지나누기 원리!  (0) 2017.11.23
뷰와 데이터 바인딩  (0) 2017.11.21
라라벨 설치  (0) 2017.11.21
개발 환경 준비-for MAC  (0) 2017.11.21