route
์ค์ ์์ฒญ์ ํด๋นํ๋ url์ ๋ง๋ ๋ผ์ฐํฐ๋ฅผ ์ฐพ๋ ๋ถ๋ถ
Illuminate\Support\Facades\Route
๋ฅผ traitsํ์ฌ Route์ ๋ฉ์๋๋ค๋ก ์์ฒญ์ ๋ผ์ฐํ
ํ ์ ์๋ค.
get,post๋ฑ๊ณผ ๊ฐ์ ๋ฉ์๋๋ค์ ์ด์ฉํ ์ ์๊ณ ์ฒซ๋ฒ์งธ ์ธ์๋ ์์ฒญ๊ฒฝ๋ก์ด๋ฉฐ, ๋๋ฒ์งธ ์ธ์๋ ์์ฒญ์ด ์์๋ ํด๋น ํจ์๋ฅผ ๋์ํ๋ค๋ ์๋ฏธ์ด๋ค. ์ด๋ ๋๋ฒ์งธ ์ธ์์ ํจ์๋ฅผ ํด๋ก์
๋ผ๊ณ ํ๋ค.
Route::get('/', function() {
return view('welcome');
});
view()
๋ฅผ ํตํด resources/views/ ์ ์๋ ํ์ผ์ returnํ ์ ์๋ค.
Route::get('/', function() {
return '{id: "gowoo"}';
});
์ฒซ๋ฒ์งธ ์์์ฒ๋ผ html view๋ ์์๊ฐ์ด ๋ฌธ์์ด์ ๋ฐํํ ์ ์๋๋ฐ ๋ฌธ์์ด์ ๋ฐ๋ก ๋ฐํํ๋ฉด controller
๊ฐ ํ ์ผ์ ํด๋ก์ ๊ฐ ๋์ ํด์ ํ ๊ฒ์ผ๋ก controller๊ฐ ์์ด๋ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค. ๋ฌผ๋ก , ์ข์ ๋ฐฉ๋ฒ์ ์๋๋ค.
ํ๋ผ๋ฏธํฐ
Route::get('/{foo}', function($foo) {
return $foo;
});
Route::get('/{boo?}', function($boo = 'bar') {
return $boo;
});
url ํ๋ผ๋ฏธํฐ๋ฅผ {}
๋ก ๊ฐ์ธ๋ฉด ํ๋ผ๋ฏธํฐ ๊ฐ์ ๋ณ์๋ก ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ๊ณ , ํ๋ผ๋ฏธํฐ๊ฐ ์์๋ ๊ธฐ๋ณธ๊ฐ์ ์ฃผ๊ณ ์ถ๋ค๋ฉด ?
๋ฅผ ๋ถ์ฌ ์ฌ์ฉํ ์ ์๋ค.
ํ๋ผ๋ฏธํฐ ํจํด
Route::pattern('foo','[0-9a-zA-z]{3}')
Route::get('/{foo}', function($foo) {
return $foo;
});
Route์ pattern๋ฉ์๋๋ฅผ ์ด์ฉํด์ ํ๋ผ๋ฏธํฐ์ ๋ํด ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ ์ ์๊ณ Pattern์ ๋ง์ง ์๋๋ค๋ฉด NotFound
์์ธ๋ฅผ ๋ฐ์์ํจ๋ค.
Route::get('/{foo}', function($foo) {
return $foo;
})->where('foo','[0-9a-zA-z]{3}');
pattern()๋์ get()์ where()์ ๋ฉ์๋ ์ฒด์ด๋์ ์ด์ฉํด์ ์ฌ์ฉํ ์๋ ์๋ค.
๋ณ์นญ
Route::get('/{foo}',
'as' => 'foo',
function($foo) {
return $foo;
}
]);
Route::get('/home', function() {
return redirect(route('home'));
});
์ปจํธ๋กค๋ฌ๋ ๋ทฐ์์ ๋ค๋ฅธ route๋ก ์ด๋ํ๋ ๋งํฌ๋ฅผ ๋ง๋ค๋ ๊ฐ ๋ผ์ฐํธ๋ง๋ค ์ด๋ฆ์ ๋ถ์ฌํ๋ฉด ์ฝ๊ฒ ์ด๋ํ ์ ์๋ค. Route::get() ๋ฉ์๋์ ๋๋ฒ์งธ ์ธ์๋ก ๋ฐฐ์ด์ ์ ๋ฌํ๋ฉด ๋๋๋ฐ, ์์ ๊ฐ์ด ๋ฐฐ์ด์ as
๋ฅผ key๋ก ํ๊ณ ๋ณ์นญ์ value๋ก ํ๋ ๊ฐ๊ณผ ํด๋ก์
๋ฅผ ๋ด์ ์ ๋ฌํ๋ฉด ๋๋ค.
Group
//middleware
Route::middleware(['first', 'second'])->group(function () {
Route::get('/', function () {
// Uses first & second middleware...
});
Route::get('user/profile', function () {
// Uses first & second middleware...
});
});
//sub domain
Route::domain('{account}.myapp.com')->group(function () {
Route::get('user/{id}', function ($account, $id) {
//...
});
});
//prefix
Route::prefix('admin')->group(function () {
Route::get('users', function () {
// Matches The "/admin/users" URL
});
});
group()๋ฉ์๋๋ ๊ณตํต๋ url์ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ถ์ด๊ฑฐ๋ ์๋ธ๋๋ฉ์ธ/ํ์ prefix๋ฅผ ๋ฌถ์๋ ์ด์ฉํ ์ ์๋ค.
์ค๋ฒ๋ผ์ด๋
๊ฐ์ ๊ฒฝ๋ก์ ๋ผ์ฐํฐ๋ฅผ ๋๋ฒ ์ ์ํ๋ฉด ๊ฐ์ฅ ์๋์ชฝ์ ์ ์ํ ๋ผ์ฐํธ๊ฐ ์คํ๋๋ค.
Last updated