Skip to main content

什麼是 Request 物件

Illuminate\Http\Request 是以物件導向處理應用程式所收到的 HTTP 請求的類別。 可存取請求中所有資訊,如表單資料、query string、檔案、header 等。

於控制器注入 Request

在控制器方法上以 Illuminate\Http\Request type-hint,Laravel 的 service container 會自動注入 request 實例。
在路由 closure 中也可以同樣 type-hint。

與路由參數同時使用

當控制器方法也接受路由參數時,將路由參數寫在 Request 之後:

取得請求資料

取得所有輸入資料

all 方法將所有輸入資料以陣列形式取得。 無論來自 HTML 表單或 XHR 請求都可使用。

取得特定欄位

input 方法不論 HTTP 方法為何,都會從整個請求 payload(含 query string)取得值。
第 2 個引數可指定值不存在時的預設值:
陣列輸入以 dot notation 存取。

取得 query string

query 方法只會從 query string(URL 中 ? 之後的部分)取得值。
input 對象是請求 body 與 query string 兩者,query 只針對 query string。 若要區分表單 POST 資料與 URL 參數,請使用 query。

型別化取得

除 input 外,也提供指定型別取得輸入值的方法。

動態屬性

也可以將欄位名稱作為屬性直接存取。
動態屬性會先從請求 payload 找值,若找不到再搜尋路由參數。

取得輸入資料的一部分

only 與 except 可取得輸入資料的子集。

輸入的存在確認

以 has 方法確認值是否包含在請求中。
要排除空字串以確認值是否存在,使用 filled。
當值不存在或為空字串時,使用 isNotFilled。

請求路徑與方法確認

取得與確認路徑

取得 URL

確認 HTTP 方法

以 isMethod 確認 HTTP 方法。

檔案上傳

取得已上傳的檔案

以 file 方法取得上傳的檔案。 回傳 Illuminate\Http\UploadedFile 實例。
要確認檔案是否存在,使用 hasFile。

儲存檔案

以 store 方法將檔案儲存到 storage。 檔名會自動產生。
要指定檔名時使用 storeAs。
接受檔案上傳時,務必驗證檔案類型與大小。 建議透過驗證安全地處理。

範例:接收表單資料

以下是在控制器接收使用者註冊表單資料的範例。
定義對應的路由:

後續步驟

Middleware

複習用來過濾請求的 middleware 的使用方式。
最後修改於 2026年8月2日