續上篇:從 0 開始的 Laravel- 帶變數到 view 裡
如果要在路由(route)上限制輸入的內容,可以在 Route 裡設定正規表達式,可以用以下的做法:
Route::get('/reg/{var}', function ($var) {
return "<h1>hello</h1>";
})->where('var','[0-9]+');
這樣只要輸入的變數不是 0-9 的數字,就會顯示 404 的頁面。
Laravel 也有內建一些函式,只要透過這些內建的函式我們就可以不用自己寫正規表達式,比如這樣:
Route::get('/reg/{var}', function () {
return "<h1>hello</h1>";
})->whereAlpha('var');
像這樣只要網址變數不是英文字母的話就會顯示 404。
如果要對各別的變數做正規表達式的檢查則可以這樣寫:
Route::get('user/{id}/{name}', function ($id, $name) {
//
})
->where(['id' => '[0-9]+', 'name' => '[a-z]+']);