들어가기에 앞서 웹은 웹 서버와 웹 브라우저가 HTTP 프로토콜을 이요해서 HTML과 같은 파일을 주고받는 기술이다.
반면, 인터넷은 컴퓨터와 컴퓨터를 연결하는 거대한 네트워크로 엄격히 말하면 웹과는 다르다.
웹은 인터넷 위에서 동작한다.
-출처:라라벨로 배우는 실전php 웹 프로그래밍-
경로 : resource/views/welcome.blade.php
<h1>Hello World~!</h1>
(참고 기존 welcome.blade.php파일안의 body내용은 모두 지운다.)
로컬서버 구동 $php artisan serve
브라우저에서 웹 서버 루트(/) 요청을 했는데, 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 |