너무 간만에 라라벨 포스팅
정말 오랜만에 공부하는거라 뭐가 뭔지 다 까먹었고 여전히 어렵지만 하나하나 공부하는데로
할수있는한 많이 포스팅하자!
[ 라우트 기본 종류 ]
우선 라우트의 기본 구조는 다음과 같다
Route:메소드(array('key값'=>'value값', 'key값'=>'value값'....)), 실행할함수명(){...}
예를 들어 Laravel을 설치를 성공하면 바로 볼수 있는 'You have arrived.'페이지를 라우트하는 소스코드를 보면 다음처럼 되어있다. 이 처럼 메소드명이 get
임을 볼 수 있는데 이게
1. 기본 get 라우트이다
Route::get('/', function()
{
return 'Hello World';
});
http://localhost:8000/라고 쳤을 때 Hello World를 return 한다는 것.
이처럼 post
를 쓰고싶을 경우에는 메소드 부분에 get
이 아닌 post
라고 입력하면 된다
2. 기본 Post 라우트
Route::post('foo/bar', function()
{
return 'Hello World';
});
get과 post
둘 다 되도록 할 때는 메소드 부분에 any
라고 입력하면 된다
3. 모든 HTTP 동사에 응답하는 라우트
Route::any('foo', function()
{
return 'Hello World';
});
[ 매개변수 받는 방법 ]
다음 예제를 보고 설명하자면,
users라는 주소(?)에서 get
으로 id값을 받아 화면에 출력하는 것을 알 수 있다.
URL에서 파라미터로 id 가 s88240이라고 넘어왔을 경우 실제로 화면에 id가 s88240으로 넘어와서
"User s88240"이라는 문구가 찍혀나왔음을 확인할 수 있다.
http://localhost:8000/users/s88240
Route::get('users/{id}', function($id)
{
return 'User '.$id;
});
또는 아이디 값을 무조건 받아오지 않아도 되도록 하고 싶을 경우 (선택적 라우트 매개변수)
다음과 같이 사용한다.
users페이지에서 파라미터(여기서는 id)를 입력 받았을 경우에는 그 값을 출력을 하고,
입력받지 않았을 경우에는 그냥 빈 페이지가 나온다.
Route::get('users/{id?}', function($id = null)
{
return $id;
});
위와 같이 null이 아니라 어떤 특정한 값을 선언해주었을 경우에는 파라미터에 아무것도 입력하지않았을때 미리 지정한 그 특정한 값을 출력할수도 있다.
Route::get('users/{id?}', function($id = 's88240')
{
return $id;
});
Route::get('user/{id}/{name}', function($id, $name)
{
//...
})
참고사이트 : http://laravel-korea.org/docs/routing (한국 Laravel메뉴얼 있는곳)
https://github.com/revivent/lbod/wiki/_pages