基本路由 Route 意思為路由,簡單說就是設定你輸入什麼網址,他會顯示什麼頁面而已
設定的檔案位置在 app\Http\routes.php,目前只有設定一個 Route 規則
1 2 3 Route::get('/' , function () { return view('welcome' ); });
除了 get 之外還可以使用
1 2 3 4 5 6 Route::get ($uri, $callback); Route::post ($uri, $callback); Route::put ($uri, $callback); Route::patch ($uri, $callback); Route::delete ($uri, $callback); Route::options ($uri, $callback);
網址加參數可以使用
1 2 3 Route::get('user/{id}' , function ($id) { return '使用者 ID = ' .$id; });
網址輸入 http://localhost/root/public/user/123
就會出現 使用者 ID = 123
,多個參數一樣用大括號包起來
1 2 3 4 5 Route::get('user/{id}/{name}' , function ($id, $name) { return '使用者 ID = ' .$id.' 姓名 = ' .$name; });
如果你想要將參數設為可選的(可加可不加)可以寫成
1 2 3 4 5 Route::get('user/{name?}' , function ($name = 'Sharon' ) { return '姓名 = ' .$name; });
限制參數 參考
限制參數只能為數字,使用 where 寫法
1 2 3 4 5 Route::get('user/{id}' , function ($id) { return '使用者 ID = ' .$id; })->where('id' ,'[0-9]+' );
也可以改用 pattern 寫法,這種寫法是全域的
之後新增的 route 中要是有 id 也會限制為數字
1 2 3 4 Route::pattern('id' ,'[0-9]+' ); Route::get('user/{id}' , function ($id) { return '使用者 ID = ' .$id; });
如果要限制多個參數可以使用
1 2 3 4 5 6 7 Route::get('user/{id}/{name}' , function ($id, $name) { })->where(array ( 'id' => '[0-9]+' , 'name' => '[A-Z]+' ));
列出目前所有 Route 設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 php artisan route:list +--------+----------+------------------------------+----------------------+---------------------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+------------------------------+----------------------+---------------------------------------------------------------+------------+ | | GET|HEAD | / | | Closure | web | | | GET|HEAD | _debugbar/assets/javascript | debugbar.assets.js | Barryvdh\Debugbar\Controllers\AssetController@js | | | | GET|HEAD | _debugbar/assets/stylesheets | debugbar.assets.css | Barryvdh\Debugbar\Controllers\AssetController@css | | | | GET|HEAD | _debugbar/clockwork/{id} | debugbar.clockwork | Barryvdh\Debugbar\Controllers\OpenHandlerController@clockwork | | | | GET|HEAD | _debugbar/open | debugbar.openhandler | Barryvdh\Debugbar\Controllers\OpenHandlerController@handle | | | | GET|HEAD | user/{id} | | Closure | web | +--------+----------+------------------------------+----------------------+---------------------------------------------------------------+------------+ php artisan route:list --name=debug php artisan route:list --path=user
進階設定 你可以替 Route 命名,例如
1 2 3 4 5 6 7 Route::get('user/{id}' , ['as' => 'user.id' , function ($id) { return '使用者 ID = ' .$id; }]); <a href="{{ route('user.id','1122') }}" >連結測試</a>
參考
Laravel 說明 中文官方網站
英文官方網站
影片教學
參考教學-Laravel Dojo