Laravel 5.5 Request
阿新 • • 發佈:2018-11-30
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');