Laravel摘記之表單驗證
阿新 • • 發佈:2019-02-01
表單驗證
表單驗證是為了防止訪問者跳過客戶端驗證而造成的系統安全問題,一但非法使用者繞過客戶端驗證而伺服器端沒有加以驗證,這樣就是很不安全了,所以專案必須要進行伺服器端表單驗證。
Laravel 提供了多種不同的驗證方法來對應用程式傳入的資料進行驗證。
常用基本規則
規則名 | 說明 |
---|---|
required | 不能為空 |
max:value | 欄位值必須小於或等於value,對於字串來說,value 為字元數 |
min:value | 欄位值必須大於或等於value,對於字串來說,value 為字元數 |
驗證郵箱是否合法 | |
url | 驗證欄位必需是有效的 URL 格式 |
confirmed | 驗證兩個欄位是否相同,如果驗證的欄位是password,則必須輸入一個與之匹配的password_confirmation欄位 |
integer | 驗證欄位必須是整型 |
ip | 驗證欄位必須是IP地址 |
numeric | 驗證欄位必須是數值 |
size:value | value 驗證欄位必須有和給定值value想匹配的尺寸,對字串而言,value是相應的字元數目,對數值而言,value是給定整型值;對檔案而言,value是相應的檔案位元組數 |
string | 驗證欄位必須是字串 |
unique | 表名,欄位,需要排除的ID |
between:min,max | 驗證欄位值的大小是否介於指定的 min 和 max 之間。字串、數值或是檔案大小的計算方式和 size 規則相同 |
regex:pattern | 驗證欄位值是否符合指定的正則表示式 |
注:多個驗證規則可以通過 “|” 字元進行隔開
程式碼實現:
//表單驗證
public function addv(Request $request){
//是否是Post提交
if($request->isMethod('post')){
$this ->validate($request,[
//表單名稱,規則,多個規則用中豎線|隔開
'username'=>'required|max:10|min:2',
'email'=>'required|email',
'pwd'=>'required|confirmed',
'pwd_confirmation'=>'required'
],[
'username.required'=>'使用者名稱不能為空',
'username.max'=>'使用者名稱不能超過3個字元',
'username.min'=>'使用者名稱不能少於2個字元',
'email.required'=>'郵箱不能為空',
'email.email'=>'郵箱不合法',
'pwd.required'=>'密碼不能為空',
'pwd.confirmed'=>'兩次密碼不一致',
'pwd_confirmation.required'=>'確認密碼不能為空',
]);
dd($request->all());
}
else{
return view('db.addv');
}
}