摘要:我們可以利用來封裝表單驗證代碼,從而精簡中的代碼邏輯,使其專注于業務。如果有更好的解決方法,歡迎留言。
我們可以利用Form Request來封裝表單驗證代碼,從而精簡Controller中的代碼邏輯,使其專注于業務。而獨立出去的表單驗證邏輯可以復用到其它請求中,看過幾篇文章,大多都是講怎么創建Request,表面看起來是將邏輯與業務分離了,但是沒有做到復用,一個業務就得新建一個Request類實在太累,索性這里我將項目全部的表單驗證放在一個Request類里,實現高度可復用,下面是具體實現。
首先創建Requestphp artisan make:request CreateUserRequestCreateUserRequest代碼塊
"required|between:2,4", "Student.userAge" => "required|integer", "Student.userSex" => "required|integer", "Student.addr" => "required", ]; //這里我只寫了部分字段,可以定義全部字段 protected $strings_key = [ "Student.userName" => "用戶名", "Student.userAge" => "年齡", "Student.userSex" => "性別", "Student.addr" => "地址", ]; //這里我只寫了部分情況,可以按需定義 protected $strings_val = [ "required"=> "為必填項", "min"=> "最小為:min", "max"=> "最大為:max", "between"=> "長度在:min和:max之間", "integer"=> "必須為整數", "sometimes"=> "", ]; /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true;//修改為true } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $rules = $this->rules; // 根據不同的情況, 添加不同的驗證規則 if (Request::getPathInfo() == "/save")//如果是save方法 { $rules["Student.addr"] = "sometimes"; } if (Request::getPathInfo() == "/edit")//如果是edit方法 { $rules["Student.addr"] = "required|min:5"; } return $rules; } //返回給前臺的錯誤信息 public function messages(){ $rules = $this->rules(); $k_array = $this->strings_key; $v_array = $this->strings_val; foreach ($rules as $key => $value) { $new_arr = explode("|", $value);//分割成數組 foreach ($new_arr as $k => $v) { $head = strstr($v,":",true);//截取:之前的字符串 if ($head) {$v = $head;} $array[$key.".".$v] = $k_array[$key].$v_array[$v]; } } return $array; } }控制器具體方法
/** * Show the form for creating a new resource. * * @return IlluminateHttpResponse */ public function save(AppHttpRequestsCreateUserRequest $request) { //這里會自動調用表單驗證 //驗證成功后繼續向下執行 $data = $request->input("Student"); if(User::create($data)){ return redirect("/")->with("success", "添加成功!"); }else{ return redirect("/create")->with("error", "添加失敗!"); } }對應的模板文件 效果展示
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25877.html
摘要:當查詢數據時,本地范圍允許我們創建自己的查詢構造器鏈式方法。這樣便會知道這是一個本地范圍并且可以在查詢構造器中使用。某些查詢構造器不可用或者說可用但是方法名不同,關于這些請查閱所有集合的方法。 showImg(https://segmentfault.com/img/remote/1460000017877956?w=800&h=267); Laravel 因可編寫出干凈,可用可調試的...
摘要:預備知識目錄后面簡稱目錄后面簡稱入口文件過程詳解范例定義路由文件路徑修改如下定義中間件中間件路徑新建中間件必須返回響應在處理請求之前做些什么在處理請求之后做些什么中間件處理完畢后,做些什么中間件處理完畢后,做些什么注冊中間件中間件配件文件路 I. 預備知識 Laravel 目錄 /path/to 后面簡稱 Laravel Web 目錄 Laravel/public 后面簡稱 Web 入...
摘要:今天我來分享中層關于請求響應與表單驗證的知識。手動創建驗證請求之前的內容是直接使用的方法來實現表單驗證。下一步到這篇為止,我完成了入門指南核心概念層的路由中間件控制器請求響應表單驗證的學習和整理。 showImg(https://segmentfault.com/img/remote/1460000010882838); 今天我來分享 Laravel 中 HTTP 層關于請求、響應與表...
摘要:本節內容比較簡單,之前我們使用方法來進行字段驗證,這樣做有一個不好的地方就是,如果你要在很多地方使用同樣的驗證,就需要重復編寫代碼。因此,提供另外一種方式來進行字段驗證,即請求類。 本節內容比較簡單,之前我們使用 validator 方法來進行字段驗證,這樣做有一個不好的地方就是,如果你要在很多地方使用同樣的驗證,就需要重復編寫代碼。因此,Laravel 提供另外一種方式來進行字段驗證...
摘要:幾乎在每一個應用當中都會有表單,而有表單基本就離不開表單驗證。在中,其實可以說是有兩種方式來進行表單驗證使用和使用。然后,上面的驗證規則是對于和兩個字段,我們需要用戶為其填充內容,不能為空。 原文來自:https://laravist.com/article/15 免費視頻教程地址 https://laravist.com/series/laravel-5-basic Laravis...
閱讀 2872·2021-11-24 09:38
閱讀 3511·2021-11-23 09:51
閱讀 967·2021-09-09 11:52
閱讀 4032·2021-08-11 11:18
閱讀 1105·2019-08-30 14:05
閱讀 3227·2019-08-30 11:23
閱讀 1759·2019-08-29 17:02
閱讀 1123·2019-08-26 13:49