라라벨에서는 확장자가 없는 URL을 사용한다.
구php : http://www.sample.com/insert.php
라라벨 : http://www.sample.com/insert
이런 식으로 사용이 가능하다.
라우팅만들기
routes/web.php 파일을 열어서 수정해보자
//문자열이 출력이 된다.
Route::get('/', function () {
return 'Hello World';
});
Route::get('posts', function () {
return 'Test message';
});
//http://localhost:8000/posts 일때 Test message(문자열)를 리턴한다.
Route::get('posts/{postId}', function ($postId) {
return 'postId: '.$postId;
});
//http://localhost:8000/posts/{파라메터값} 일때 $postId값을 보여준다.
Route::get('posts/{postId?}', function ($postId = 'bar') {
return 'postId:'.$postId;
});
// ? 와 function에 기본 인자값을 넣어준다.
// 127.0.0.1:8000/posts/ 값이 없을때는 기본값 bar을 보여준다.
Route::pattern('posts', '[0-9a-zA-Z]{3}');
Route::get('posts/{postId?}', function ($postId = 'bar') {
return 'postId:'.$postId;
});
정규표현식
URL파라미터를 아라비아 숫자,영어 소문자, 영어 대문자로 구성된 세자리 글자로 한정하는 예제다.
Route::get('posts/{postId?}', function ($postId = 'bar') {
return 'postId:'.$postId;
})->where('foo', '[0-9a-zA-Z]{3}');
a-c와 같이 패턴에 맞지 않는 요청은 NotFoundHttp Exception을 반환한다.
데이터 바인딩 : with() 메서드를 체인하여 데이터를 바인딩할 수 있다.
Route::get('hello/html', function(){
return view('welcome')->with('name','Foo');
});
배열을 이용해 여러개의 데이터를 넘긴다.
Route::get('/', function(){
return view('welcome',[
'name' => 'Foo',
'greeting' => '안녕하세요?'
]);
});
welcome.blade.php
<h1>Hello Laravel</h1>
<h1><?=$name?></h1>
<h1>{{$name}}</h1>
<h1>{{$greeting}}</h1>
아래의 라우팅 소스는 같은 동작을 한다 둘중에 아무거나 사용하자~
Route::get('/about', function(){
return view('about');
});
Route::view("about", "about");
'라라벨 > 라우팅' 카테고리의 다른 글
prefix, namespace (0) | 2020.03.29 |
---|---|
라우트 필요한 메서드만 지정하기 only, except (0) | 2020.02.04 |