:::
4. 了解路由的運作
當使用者在瀏覽器輸入網址,或者透過連結執行網站某個操作,這些「網址」會變成Laravel要執行什麼動作的依據,這樣的機制,就是Route(路由)。
一、路由(Route)
- 路由,就是讓Laravel根據使用者從瀏覽器輸入的網址來判斷接下來該做什麼事。
- 網頁的路由放在
/專案/routes/web.php,請開啟之。 - 其中最下面兩行是我們執行上一單元加入內建的使用者認證機制時,自動產生的路由,暫時無須去理會它。
Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home');- 我們用
Route::get('網址', 動作);來取得符合條件的網址,並告知系統要做啥事。 - 路由都是由上往下,一旦符合條件就執行。
get是動詞(亦即HTTP的傳輸方式),其他動詞才還有post、patch、delete等。- 當接收到的網址是用get傳過來的,且在
/目錄時,會傳回名字叫做welcome的視圖(View),該視圖會去讀取名為welcome.blade.php的樣板,簡寫為view('welcome')。
- 我們用
二、視圖(View)
- 視圖,用來呈現畫面用,其實就是一個HTML網頁,只是裡面有包含一些樣板語法。
- View 一律放在「
專案/resources/views/」底下,檔名一律為「xxx.blade.php」。 - welcome 的樣板位置在
/專案/resources/views/welcome.blade.php,高興的話,可以隨意改一下內容。
三、路由帶參數給視圖
- 如果路由需要帶參數給視圖,可以用
->with(),如:Route::get('/', function () { return view('welcome')->with('name','tad')->with('say','嗨!'); }); - 亦可用陣列:
當然也可以簡寫為Route::get('/', function () { $data = ['name' => 'tad', 'say' => '嗨!']; return view('welcome', $data); });Route::get('/', function () { return view('welcome', ['name' => 'tad', 'say' => '嗨!']); }); - 也可以用 PHP 的
compact()函數Route::get('/', function () { $name = 'tad'; $say = '嗨!'; return view('welcome', compact('name', 'say')); }); - 此時,請修改
/專案/resources/views/welcome.blade.php樣板,可以加入:<div class="title m-b-md"> {{$name}} {{$say}} Laravel </div> -
看起來像這樣

3-3 開啟網站並登入
