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 找值,若找不到再搜尋路由參數。

取得輸入資料的一部分

onlyexcept 可取得輸入資料的子集。

輸入的存在確認

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

請求路徑與方法確認

取得與確認路徑

取得 URL

確認 HTTP 方法

isMethod 確認 HTTP 方法。

檔案上傳

取得已上傳的檔案

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

儲存檔案

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

範例:接收表單資料

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

後續步驟

Middleware

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