亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

如何優雅的使用 laravel 的 validator驗證方法

2024-05-05 00:05:48
字體:
來源:轉載
供稿:網友

web 開發過程中經常會需要進行參數驗證,laravel 中我們常用 validator 或者 request 這兩種方法來進行驗證,但是這兩種驗證都不是很方便進行自定義提示信息,自定義驗證規則,所以下面來介紹一種很方便的用法:

新建抽象類

<?phpnamespace App/Http/Validators;use Validator;abstract class AbstractValidator{ /**  * Validator  *  * @var /Illuminate/Validation/Factory  */ protected $validator; /**  * Validation data key => value array  *  * @var array  */ protected $data = array(); /**  * Validation errors  *  * @var array  */ protected $errors = array(); /**  * Validation rules  *  * @var array  */ protected $rules = array(); /**  * Validation messages  *  * @var array  */ protected $messages = array(); /**  * Validation codes  *  * @var array  */ protected $codes = array(); public function __construct(array $data) {  $this->data = $data;  $this->before();  $this->validator = Validator::make($this->data, $this->rules, $this->messages);  $this->after(); } /**  * Set data to validate  *  * @return validator  */ public function getValidator() {  return $this->validator; } /**  * Set data to validate  *  * @return $this  */ public function with(array $data) {  $this->data = $data;  $this->before();  $this->validator = $this->validator->make($this->data, $this->rules, $this->messages);  $this->after();  return $this; } /**  * Validation passes or fails  *  * @return boolean  */ public function passes() {  if ($this->validator->fails()) {   $this->errors = $this->validator->messages();   return false;  }  return true; } /**  * Return errors, if any  *  * @return array  */ public function errors() {  return $this->errors; } /**  * Return errors codes, if any  *  * @return array  */ public function getCodes() {  return $this->codes; } /**  * getRules  *  * @return array  */ public function getRules() {  return $this->rules; } /**  * getData  *  * @return array  */ public function getData() {  return $this->data; } /**  * getErrors  *  * @return array  */ public function getErrors() {  return $this->errors; } /**  * getMessages  *  * @return array  */ public function getMessages() {  return $this->messages; } /**  * setRule  *  * @param string $key  * @param string $value  *  * @return $this  */ public function setRule($key, $value) {  $this->rules[$key] = $value;  return $this; } /**  * emptyRules  *  * @return $this  */ public function emptyRules() {  $this->rules = array();  return $this; } /**  * sometimes  *  * @param string  $attribute  * @param string|array $rules  * @param callable  $callback  *  * @return $this  */ public function sometimes($attribute, $rules, callable $callback) {  $this->validator->sometimes($attribute, $rules, $callback);  return $this; } /**  * resolver  *  * @param Closure $resolver  *  * @return $this  */ public function resolver(Closure $resolver) {  Validator::resolver($resolver);  return $this; } /**  * replacer  *  * @param Closure $resolver  *  * @return $this  */ public function replacer($replace, Closure $resolver) {  Validator::replacer($replace, $resolver);  return $this; } /**  * extendImplicit  *  * @param Closure $resolver  *  * @return $this  */ public function extendImplicit($extendImplicit, Closure $resolver) {  Validator::extendImplicit($extendImplicit, $resolver);  return $this; } /**  * extend  *  * @param string   $rule  * @param /Closure|string $extension  * @param string   $message  *  * @return $this  */ public function extend($rule, $extension, $message = null) {  Validator::extend($rule, $extension, $message);  return $this; } /**  * before (extend(),resolver())  *  * @return $this  */ public function before() { } /**  * after(sometimes())  *  * @return $this  */ public function after() { }}

新建中間件

<?phpnamespace App/Http/Middleware;use Closure;use /Illuminate/Http/Request;class ValidateAdminMiddleware{ /**  * This namespace is applied to the controller routes in your routes file.  *  * In addition, it is set as the URL generator's root namespace.  *  * @var string  */ protected $namespace = 'App/Http/Validators'; /**  * Handle an incoming request.  *  * @param /Illuminate/Http/Request $request  * @param /Closure     $next  *  * @return mixed  */ public function handle(Request $request, Closure $next, $validator = null) {  if ($request->isMethod('POST')) {   $type = $request->segment(1);   if ($validator) {    $validator = $this->namespace . '//' . studly_case($type) . '//' . studly_case($validator) . 'Validator';    $validator = new $validator($request->all());    if (!$validator->passes()) {     if ($request->isAjax()) {      return $validator->errors()->first();     } else {      return redirect()->back()      ->withErrors($validator->getValidator())      ->withInput();     }    }   }  }  return $next($request); }}

新建 TestTestValidator

<?phpnamespace App/Http/Validators/Admin;use App/Http/Validators/AbstractValidator;class TestValidator extends AbstractValidator{ /**  * Validation rules  *  * @var Array  */ protected $rules = array(  'name' => ['required', 'test', 'min:1'], ); /**  * Validation messages  *  * @var Array  */ protected $messages = array(  'name.required' => '必填',  'name.min' => '最少1個字符',  'name.test' => '測試', ); /**  * 自定義驗證規則或者擴展Validator類  */ public function before() {  $this->extend('test', function ($attribute, $value, $parameters) {   return bool;  }); }}

路由中如何使用

Route::post('/', ['middleware' => ['valiAdmin:Test'], 'uses' => 'IndexController@test']);

具體使用可以自行配置~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲一区二区精品| 91精品国产91久久久久久久久| 亚洲女人天堂av| 亚洲美腿欧美激情另类| 色婷婷亚洲mv天堂mv在影片| 欧美视频专区一二在线观看| 亚洲久久久久久久久久久| 2019中文字幕全在线观看| 久久久久久免费精品| 精品国产欧美成人夜夜嗨| 欧美日韩色婷婷| 国产这里只有精品| 欧美日韩在线视频一区| 91sao在线观看国产| 国产精品香蕉av| 亚洲福利视频在线| 中文字幕日韩在线视频| 亚洲精选一区二区| 97国产真实伦对白精彩视频8| 国产一区二区三区四区福利| 国产在线精品自拍| 久久久在线视频| 国产精品久久久久久久久粉嫩av| 日韩美女视频免费在线观看| 久久精品视频va| 亚洲欧美色婷婷| 欧美专区第一页| 亚洲女人天堂网| 成人在线一区二区| 色狠狠av一区二区三区香蕉蜜桃| 亚洲欧美一区二区三区久久| 日本19禁啪啪免费观看www| 亚洲高清在线观看| 综合网日日天干夜夜久久| 国产久一一精品| 欧美日韩国产一区中文午夜| 亚洲日本欧美日韩高观看| 国产精品视频白浆免费视频| 久久国产精品网站| 国内精品美女av在线播放| 欧美日韩中文字幕综合视频| 午夜精品一区二区三区av| 欧美日韩综合视频网址| 久久久亚洲国产天美传媒修理工| 在线观看日韩av| 青青草原一区二区| 国内外成人免费激情在线视频网站| 色综合老司机第九色激情| 亚洲精品女av网站| 久久人人看视频| 日本高清不卡的在线| 91九色精品视频| 久久亚洲欧美日韩精品专区| 国产日韩精品入口| 欧美性生交大片免网| 最近2019免费中文字幕视频三| 国产噜噜噜噜久久久久久久久| 国产精品户外野外| 国产精品678| 欧美激情在线观看| 亚洲欧美变态国产另类| 一区二区三区www| 精品久久久久久亚洲国产300| 欧美性xxxxxxxxx| 亚洲成人av片在线观看| 国产亚洲aⅴaaaaaa毛片| 色吧影院999| 欧美伊久线香蕉线新在线| 日韩成人在线视频观看| 欧美福利视频在线| 欧美日韩亚洲视频一区| xxxx欧美18另类的高清| 国产噜噜噜噜噜久久久久久久久| 美女少妇精品视频| 欧美在线视频观看免费网站| 日韩中文av在线| 欧洲成人在线视频| 国产精品香蕉国产| 国产精品久久久久久av福利软件| 日日狠狠久久偷偷四色综合免费| 国产网站欧美日韩免费精品在线观看| 欧美日韩国产成人在线| 国产噜噜噜噜久久久久久久久| 亚洲第一页中文字幕| 亚洲成人激情在线观看| 97**国产露脸精品国产| 久久久久女教师免费一区| 亚洲综合色激情五月| 91免费精品国偷自产在线| 久久国产精品网站| 自拍偷拍亚洲在线| 色综合视频一区中文字幕| 欧美日本高清视频| 色狠狠久久aa北条麻妃| 激情懂色av一区av二区av| 九九热精品在线| 久久久久久免费精品| 日韩免费在线视频| 中文字幕久精品免费视频| 国产欧美日韩免费看aⅴ视频| 欧美亚洲另类激情另类| 国产精品视频一区二区高潮| 亚洲高清久久久久久| 97在线视频观看| 久久国产精品久久久久久久久久| 欧美视频在线免费看| 九九热精品视频国产| 国产精品久久久久久久久久久新郎| 青青久久av北条麻妃黑人| 亚洲国产美女久久久久| 九九九久久国产免费| 欧美亚洲另类视频| 国产一区二区动漫| 日韩黄色高清视频| 国产aⅴ夜夜欢一区二区三区| 欧美成人午夜剧场免费观看| 午夜精品一区二区三区在线| 日韩av在线影视| 97热精品视频官网| 91精品国产高清久久久久久久久| 亚洲午夜国产成人av电影男同| 欧美人交a欧美精品| 亚洲男人的天堂在线播放| 久久国产精品久久国产精品| 久久久久久久久久久91| 国产成人精品a视频一区www| 中文日韩在线视频| 这里只有精品视频| 成人精品视频久久久久| 2019中文字幕免费视频| 精品亚洲一区二区| 色妞在线综合亚洲欧美| 色中色综合影院手机版在线观看| 欧美日韩免费在线| 亚洲精品日韩在线| 91精品视频在线看| 97精品视频在线| 日韩天堂在线视频| 国产欧美日韩最新| 日本久久久久亚洲中字幕| 日韩在线观看电影| 日韩综合中文字幕| 亚洲男人天堂手机在线| 欧美激情精品久久久| 国产精品国产三级国产专播精品人| 国产精品欧美激情在线播放| 午夜剧场成人观在线视频免费观看| 国产盗摄xxxx视频xxx69| 成人亚洲欧美一区二区三区| 国产精品欧美久久久| 欧美大片免费观看在线观看网站推荐| 日本午夜精品理论片a级appf发布| 国产成+人+综合+亚洲欧洲| 国产精品高潮呻吟久久av野狼| 亚洲bt欧美bt日本bt| 欧美大肥婆大肥bbbbb| 91精品久久久久| 另类视频在线观看| www国产91| 国产在线精品一区免费香蕉| 国产精品亚洲аv天堂网| 欧美亚洲伦理www| 91沈先生在线观看| 久久九九热免费视频|