什麼是 Request 物件
Illuminate\Http\Request 是以物件導向處理應用程式所收到的 HTTP 請求的類別。
可存取請求中所有資訊,如表單資料、query string、檔案、header 等。
於控制器注入 Request
在控制器方法上以Illuminate\Http\Request type-hint,Laravel 的 service container 會自動注入 request 實例。
與路由參數同時使用
當控制器方法也接受路由參數時,將路由參數寫在Request 之後:
取得請求資料
取得所有輸入資料
all 方法將所有輸入資料以陣列形式取得。
無論來自 HTML 表單或 XHR 請求都可使用。
取得特定欄位
input 方法不論 HTTP 方法為何,都會從整個請求 payload(含 query string)取得值。
取得 query string
query 方法只會從 query string(URL 中 ? 之後的部分)取得值。
input 對象是請求 body 與 query string 兩者,query 只針對 query string。
若要區分表單 POST 資料與 URL 參數,請使用 query。型別化取得
除input 外,也提供指定型別取得輸入值的方法。
動態屬性
也可以將欄位名稱作為屬性直接存取。取得輸入資料的一部分
only 與 except 可取得輸入資料的子集。
輸入的存在確認
以has 方法確認值是否包含在請求中。
filled。
isNotFilled。
請求路徑與方法確認
取得與確認路徑
取得 URL
確認 HTTP 方法
以isMethod 確認 HTTP 方法。
檔案上傳
取得已上傳的檔案
以file 方法取得上傳的檔案。
回傳 Illuminate\Http\UploadedFile 實例。
hasFile。
儲存檔案
以store 方法將檔案儲存到 storage。
檔名會自動產生。
storeAs。
範例:接收表單資料
以下是在控制器接收使用者註冊表單資料的範例。後續步驟
Middleware
複習用來過濾請求的 middleware 的使用方式。