iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1

Day7 laravel 設計 route

在laravel中 route的使用相當重要,畢竟是整個專案的入口。
以前寫原生PHP時沒有用route的習慣,整個檔案的路徑都暴露在URI之中
使用route可以將真實的檔案路徑隱藏,可以輕鬆的將request導向需要的某個controller中的某個function,相當好用。

routes 資料夾內容如下

其實小弟我只用過兩個,api.php和web.php

其實哪個都可以用,只是做個分類而已,一般開發可使用web.php,若是純開api我會使用api.php。

編寫route

範例:

Route::get('/', function () {
    return view('welcome');
});

說明:

  • get :
    使用的method為get。最常見的method有 get、post、put、delete。我的專案是遵循 restful api的型式,這個之後會出一篇文章專門講解。這邊要注意的是,除了指定的method一律不能過,若是使用get 以外的method,laravel會回報錯誤。

  • '/'
    method的()裏面,第一個參數為路徑PATH。若是依照範例,也就是URL後面路徑啥都沒加,網址輸入127.0.0.1:8000/便會走到這個route。這邊可以自由的設計。
    例如,設定/home就會到首頁之類的。

  • request 去向
    第二個參數則是選擇要導到哪裡,範例中function () {return view('welcome');} 表示要導到view中的welcome.blade.php檔案(laravel首頁),下圖為專案中的views

    但是我認為不常這麼做,通常是route->controller->view這個流程,你可能覺得多此一舉,幹嘛非要繞到controller那裡,但我個人是認為所有view都統一交給controller管理比較好。
    下面給個範例:

    Route::get('/', TodoController@index);
    

    就像這樣,將request導至TodoController中名為index的function。

    以上的範例是在web.php中的laravel新建立時就自帶的,小弟我平常都是使用api.php這邊,用法一樣,只是路徑要多加上api/。例如,下面這個範例是我簡易trello專案中的其中一支,寫在api.php檔案內

Route::post('/userToken', 'api\GetToken@login');

這時候我的網址就必須打
127.0.0.1:8000/api/userToken
才會導到我要的controller內喔。

而我的controller建立在app/Http/Controllers/api/GetToken.php裏面,因此路由的第2個參數要打api\GetToken@login,這樣才會找到我的controller GetToken裡的login這個function。
注意斜線是\(反斜線)。


route設定就講到這邊吧,其他進階的用法之後會再講到的。
參考:https://laravel.com/docs/7.x/routing


上一篇
Day6 laravel專案目錄、MVC架構
下一篇
Day8 laravel controller 基礎用法
系列文
後端新手 使用laravel 從零開始 到開出api30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言