:::

4. 了解路由 Router 及視圖 View

當使用者在瀏覽器輸入網址,或者透過連結執行網站某個操作,該如何讓Laravel從這些「網址」判斷出,接下來該執行什麼動作,這樣的機制,就是Route(路由)。

一、路由(Route)

  1. 路由,就是讓Laravel根據使用者從瀏覽器輸入的網址來判斷接下來該做什麼事。
  2. 網頁的路由放在/專案/routes/web.php,請開啟之。
  3. 其中最下面兩行是我們執行上一單元加入內建的使用者認證機制時,自動產生的路由,暫時無須去理會它。
    Route::get('/', function () {
        return view('welcome');
    });
    
    Auth::routes();
    
    Route::get('/home', 'HomeController@index')->name('home');
    • 我們用 Route::get('網址', 動作); 來取得符合條件的網址,並告知系統要做啥事。
    • 路由都是由上往下,一旦動詞符合且路徑符合就執行指定的動作。
    • get是動詞(亦即HTTP的傳輸方式),其他動詞才還有postpatchdelete等,詳情可參考 開始定義系統各項功能
    • 當接收到的網址是用get傳過來的,且在 / 目錄時,會傳回名字叫做welcome的視圖(View),該視圖會去讀取名為 welcome.blade.php 的樣板,簡寫為view('welcome')

二、視圖(View)

  1. 視圖,用來呈現畫面用,其實就是一個HTML網頁,只是裡面有包含一些樣板語法。
  2. View 一律放在「專案/resources/views/」底下,檔名一律為「xxx.blade.php」。
  3. welcome 的樣板位置在 /專案/resources/views/welcome.blade.php,高興的話,可以隨意改一下內容,例如我們來隨意新增兩個變數(等等可以讓路由帶參數過來套用):
    <div class="title m-b-md">
        {{$name}} {{$say}} Laravel
    </div>

三、帶參數給視圖

  1. 如果路由需要帶參數給視圖,可以用->with(),如:
    Route::get('/', function () {
        return view('welcome')->with('name','tad')->with('say','嗨!');
    });
  2. 亦可用陣列:
    Route::get('/', function () {
        $data = ['name' => 'tad', 'say' => '嗨!'];
        return view('welcome', $data);
    });
    當然也可以簡寫為
    Route::get('/', function () {
        return view('welcome', ['name' => 'tad', 'say' => '嗨!']);
    });
  3. 也可以用 PHP 的 compact() 函數
    Route::get('/', function () {
        $name = 'tad';
        $say  = '嗨!';
        return view('welcome', compact('name', 'say'));
    });
  4. 看起來像這樣

到GitHub觀看此單元程式異動


:::

書籍目錄

展開 | 闔起

快速登入


http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1390

計數器

今天: 364364364
昨天: 8625862586258625
總計: 8030971803097180309718030971803097180309718030971