Request(請求)
$path = $request->path(); // 擷取請求路徑
$request->is('user/*'); // 驗證請求路徑是否與給定模式比對,該方法參數支援 * 通配符
// 擷取請求URL
$url = $request->url(); // 不包含查詢字元串
$url_with_query = $request->fullUrl(); // 包含查詢字元串
// 擷取請求方法
$method = $request->method(); // GET/POST
if($request->isMethod('post')){
// true or false
}
// 擷取請求輸入
(擷取所有輸入值)
$input = $request->all();
(擷取單個輸入值)
$name = $request->input('name');
$name = $request->input('name', '學院君'); // 如果請求輸入值在目前請求 URL 中未出現時該值将會被傳回
$input = $request->input('products.0.name'); // 處理表單數組輸入時,可以使用”.”來通路數組輸入
$names = $request->input('products.*.name'); // 處理表單數組輸入時,可以使用”.”來通路數組輸入
(從查詢字元串中擷取輸入)
$name = $request->query('name');
$name = $request->query('name', '學院君');
$query = $request->query();
(通過動态屬性擷取輸入)
$name = $request->name;
(擷取JSON輸入值)
$name = $request->input('user.name');
(擷取輸入的部分資料)
$input = $request->only(['username', 'password']);
$input = $request->only('username', 'password');
$input = $request->except(['credit_card']);
$input = $request->except('credit_card');
(判斷請求參數是否存在)
if ($request->has('name')) {
// 判斷參數在請求中是否存在,可以使用 has 方法,如果參數存在則傳回 true
}
if ($request->has(['name', 'email'])) {
// 該方法支援以數組形式查詢多個參數,這種情況下,隻有當參數都存在時,才會傳回 true
}
if ($request->filled('name')) {
// 如果你想要判斷參數存在且參數值不為空,可以使用 filled 方法
}
// 上一次請求輸入
(将輸入存儲到Session)
$request->flash();
$request->flashOnly('username', 'email');
$request->flashExcept('password');
(将輸入存儲到 Session 然後重定向)
如果你經常需要一次性存儲輸入請求輸入并傳回到表單填寫頁,可以在 redirect() 之後調用 withInput() 方法實作這樣的功能
return redirect('form')->withInput();
return redirect('form')->withInput($request->except('password'));
(取出上次請求資料)
$username = $request->old('username');
// Cookie
(從請求中取出Cookie)
$value = $request->cookie('name');
(添加Cookie到響應)
return response('歡迎來到 Laravel 學院')->cookie(
'name', '學院君', $minutes
);
(生成Cookie執行個體)
如果你想要生成一個 Symfony\Component\HttpFoundation\Cookie 執行個體以便後續添加到響應執行個體,可以使用全局輔助函數 cookie,該 Cookie 隻有在添加到響應執行個體上才會發送到用戶端:
$cookie = cookie('name', '學院君', $minutes);
return response('歡迎來到 Laravel 學院')->cookie($cookie);
// 檔案上傳
(擷取上傳的檔案)
$file = $request->file('photo');
if ($request->hasFile('photo')) {
// 可以使用 hasFile 方法判斷檔案在請求中是否存在
}
(驗證檔案是否上傳成功)
if ($request->file('photo')->isValid()){
// 使用 isValid 方法判斷檔案在上傳過程中是否出錯
}
(檔案路徑 & 擴充名)
$path = $request->photo->path();
$extension = $request->photo->extension();
(其他檔案方法)
https://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/UploadedFile.html
(儲存上傳的檔案)
store();
* 接收一個檔案儲存的相對路徑(相對于檔案系統配置的根目錄 ),該路徑不需要包含檔案名,因為系統會自動生成一個唯一ID作為檔案名, 還接收一個可選的參數 —— 用于存儲檔案的磁盤名稱作為第二個參數(對應檔案系統配置 disks 的鍵名,預設值是 local),該方法會傳回相對于根目錄的檔案路徑
$path = $request->photo->store('images');
$path = $request->photo->store('images', 's3');
* 如果你不想自動生成檔案名,可以使用 storeAs 方法,該方法接收儲存路徑、檔案名和磁盤名作為參數:
$path = $request->photo->storeAs('images', 'filename.jpg');
$path = $request->photo->storeAs('images', 'filename.jpg', 's3');