[Day 13] Laravel的路由(Route)與控制器(Controller)(一)

Laravel的路由(Route)與控制器(Controller)(一)

路由(Route)與控制器(Controller)

路由(Route)

當使用者在網址列輸入網址,
網站就要針對這個網址去作相對應的處理,
Laravel把判斷網址參數跟之後要做的動作,
都交給路由(Route)去做處理.
Laravel的路由(Route)檔案位置是在routes/web.php中:
https://ithelp.ithome.com.tw/upload/images/20200926/201056942HVqCW9J4S.png

先將web.php修改如下:

<?php

use Illuminate\Support\Facades\Route;

//首頁
Route::get('/', 'HomeController@indexPage');

//使用者
Route::get('/user/auth/sign-up', 'UserAuthController@signUpPage');
Route::post('/user/auth/sign-up', 'UserAuthController@signUpProcess');
Route::get('/user/auth/sign-in', 'UserAuthController@signInPage');
Route::post('/user/auth/sign-in', 'UserAuthController@signInProcess');
Route::get('/user/auth/sign-out', 'UserAuthController@signOut');

?>

在括號的裡面有兩個參數,
第一個參數是網址,
第二個參數是網址對應的Laravel的Controller跟方法,
當輸入網址的時候,
Laravel就會去找後面的Controller跟方法,
找到了就會根據我們所寫的內容去執行.

目前我們只寫了首頁跟註冊登入登出的部分,
註冊有get跟post兩個方法,
登入也有get跟post兩個方法.

路由群組(Group)

我們發現使用者相關的網址前面都有user,
我們可以把所有相關的都放在同一個群組(Group)裡面,
當然群組裡面可以再包含群組,
我們將上面的web.php修改如下:

<?php

use Illuminate\Support\Facades\Route;

//首頁
Route::get('/', 'HomeController@indexPage');

Route::group(['prefix' => 'user'], function(){
    //使用者驗證
    Route::group(['prefix' => 'auth'], function(){
        Route::get('/sign-up', 'UserAuthController@signUpPage');
        Route::post('/sign-up', 'UserAuthController@signUpProcess');
        Route::get('/sign-in', 'UserAuthController@signInPage');
        Route::post('/sign-in', 'UserAuthController@signInProcess');
        Route::get('/sign-out', 'UserAuthController@signOut');
    });
});
?>

執行的結果跟之前寫的方式一樣,
但是這樣寫在檢視程式碼,
或是未來要修改加內容的時候,
會更加清楚明瞭.