iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
0
Modern Web

Laravel學習系列 第 25

LARAVEL學習 DAY 25 新的開始 - 細說路由(一)

感冒了 難受

LARAVEL學習 DAY 25 新的開始 - 細說路由(一)

前言

我把信箱拿掉了 害我不能講寄信功能 ㄇㄉ

正文

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Route::match(['get', 'post'], '/', function () {
    //
});

Route::any('foo', function () {
    //
});

基本上就是這樣 options有很大的發揮空間 然後put patch delete真的是很麻煩 還要帶_method才能用 不然就是用blade
不過axios那類的套件一般都是直接支援 算不錯了

然後match就是吻合特定幾個 後面是一個陣列 any就什麼東西都給我進來的概念

Route::redirect('/here', '/there', 301);

這東西是拿來重新導向的 後面那個是http status code
我記得300多的都是重新導向的code

Route::view('/welcome', 'welcome');

這支就是一開始就在的傢伙(是它嗎 感覺好像認錯人)
舊版的寫法是長這樣

Route::get('/welcome', function () {
   return view('welcome'); 
});

然後還可以這樣帶參數

Route::view('/welcome', 'welcome', ['name' => 'bitxh']);

放在uri的參數長這樣

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});

丟到Controller也是一樣的用法 直接接過來就好了 而且他好像不太管變數名稱 只看順序傳的

Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});

這個是選擇性參數 有時候挺好用的 不過有時候順序放錯就會引發路由錯亂 或是工程屍錯亂...

Route::get('user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

這個是正規 其實我到現在還是只看得懂一點點正規...

然後一個很重要的東西

Route::get('user/profile', function () {
    //
})->name('profile');

路由命名 讓你可以很簡單的用route('profile')來叫它 不用在那邊打一堆

結語

之前都只是有用到的才會講的路由 這次終於可以完整地講了


上一篇
LARAVEL學習 DAY 24 新的開始 - Authentication(二)
下一篇
LARAVEL學習 DAY 26 新的開始 - 細說路由(二)
系列文
Laravel學習30

尚未有邦友留言

立即登入留言