路由(Route)與控制器(Controller)
路由(Route)
當使用者在網址列輸入網址,
網站就要針對這個網址去作相對應的處理,
Laravel把判斷網址參數跟之後要做的動作,
都交給路由(Route)去做處理.
Laravel的路由(Route)檔案位置是在routes/web.php中:
先將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');
});
});
?>
執行的結果跟之前寫的方式一樣,
但是這樣寫在檢視程式碼,
或是未來要修改加內容的時候,
會更加清楚明瞭.