fbpx

今天我們要來新增route,那route是什麼呢?

在這裡我會比喻成連接controller與view之間的路,

controller中的哪個function要到哪個頁面,

這中間都需要一個運輸資料的路,而這個就是路由的用意啦~

在這裡我們可以用兩種方式去撰寫

Step1.

第一種:http指令

在web.php中首頁的route,這是最基本的寫法,

還記得在我們講http指令的時候他有出來客串一下嗎,

如果不記得沒關係,我們現在來複習一下。

  1. Route:: HTTP指令 ( ‘url’ , function )

2. Route:: HTTP指令 ( ‘url’ , ‘OOController@functionname’ )

EX.1:Route:: get ( ‘/post’ , function(){ return view(‘welcome’);} )

EX.2:Route:: get ( ‘/post’ , ‘PostController@index )

Step2.

輸入php artisan route:list

我們在Terminal輸入php artisan route:list ,

這可以取得所有controller中function的route資訊,

那我們這裡只要看WorkController的部分就好,主要的分類為:

Domain | Method | URI | Name | Action

  • Domain那一欄是空的所以我們就不看
  • Method是那個function需要用到的http指令
  • URL就是我們網址的填寫方式
  • Name則是function名稱
  • Action是function位置

Step3.

每個function的路由

Route:: Method ( ‘URL’ , ‘OOController@functionname’ )->name(‘自行取’)

將對應的資料填上,最後name的部分可有可無,

但有跟沒有在之後頁面撰寫的部分會不一樣。

  • 有name的話是{{ route(‘home’) }},如果是有id的情況下

{{ route(‘home.show’, $work->id) }}

  • 沒有name的話是{{ url(‘works’) }},如果是有id的情況下

{{ url(‘works/{work}’) }}

這就看大家喜歡哪種方式嘍~~

Step4.

第二種:resource

如果說在新增controller時有用到resource來建立crud的function,

那在這邊用resource就可以取得那些function,我們在括弧中會看到:

  • ‘works’自行取名字
  • ‘WorkController’所針對的controller名稱

那’works’要在哪裡使用呢?他也算是網址的一種,只是是內部的網址。

還記得先前的WorkController中store( )和update( )

最後導向的頁面是這樣寫的嗎?

‘works.show’ 這是表示導回show這個function中的頁面,

所以在之後的撰寫中,如果我們需要導向到某個頁面時,

就可以用 {{ route(‘works.function名稱’) }},

如果是有id的話{{ route(‘works.function名稱’, $work->id) }}。

以上是對路由撰寫的兩種方式,一樣依大家的習慣去做就行了。

Alva

Alva

文組小嫩嫩之喜歡數學的Alva 當進入到快樂學程式後 發現學程式真的沒有想像中困難 訓練的是邏輯能力與解決問題!! 我其實是從一堂必修直接入坑至學程式的世界 意外地讓我喜歡動動手打打code🥰

Leave a Reply