라라벨에서는 확장자가 없는 URL을 사용한다.

구php : http://www.sample.com/insert.php 

라라벨 : http://www.sample.com/insert 

이런 식으로 사용이 가능하다.

사진자료 : http://www.hakawati.co.kr/361

라우팅만들기

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

+ Recent posts