首先  BaseValidator基类

<?phpnamespace App\Http\Requests;
use Illuminate\Support\Facades\Validator;class BaseValidator
{/**Validator基类方法。验证失败就抛出异常* Notes:* User: ChenJulong* Date: 2019/7/16* Time: 17:09* @param $data* @param bool $scen* @param $rules* @param $message*/public function yanzheng($data,$scen=false,$rules,$message){if (is_array($scen)){foreach ($scen as $k){//删除scen中没有的验证参数$rules_new[$k]=$rules[$k];}$validator=Validator::make($data,$rules_new,$message);}else{//如果不存在数据验证分组,直接make$validator=Validator::make($data,$rules,$message);}if ($validator->fails()){//验证数据不通过,跑出异常$arr=array('message'=>$validator->errors()->first()  ,'date'=>'参数错误','status'=>800,);exit(json_encode($arr,JSON_UNESCAPED_UNICODE));}}
}

再设置UserValidator

<?phpnamespace App\Http\Requests;class GoodsValidator extends BaseValidator
{protected $rules=array('name'=>'required','pass'=>'required','test'=>'required');protected $message=array('name.required' => '用户名不能为空','pass.required'=>'密码不能为空',);/*** Determine if the user is authorized to make this request.** @return bool*/public function authorize(){return false;}/**自定义的scen,数据分组。可以传入此值作为只验证那些信息* Notes:* User: ChenJulong* Date: 2019/7/16* Time: 17:05* @param bool $scen* @return bool|mixed*/public function scen($scen=false){$s=array('login'=>['name','pass'],);if ($scen){return $s[$scen];}else return false;}/*** Notes:* User: ChenJulong* Date: 2019/7/16* Time: 16:28* @param $data*/public function check($data,$scen=false){$this->yanzheng($data,$this->scen($scen),$this->rules,$this->message);}
}

最后再控制器中调用

    public function test(Request $request){$input=$request->all();(new GoodsValidator())->check($input);}

没找到laravel5.8中再哪里可以用Request::all()之类的方法来获取参数,才开始接触laravel。

不然的话还可以更优雅一点。

自己加了一个类似于thinkphp的scen 来作为只验证那些参数

申研社-陈杰

Laravel表单验证,优雅一点的写法,控制器里面不要写太多东西,相关推荐

  1. laravel表单验证

    表单验证方法1: 使用validate方法 public function store(Request $request){$this->validate($request, ['title' ...

  2. tornado 自定义WEB框架 、与Tyrion组件做表单验证

    一:目录结构: app.py文件中写程序逻辑,路由.表单验证(使用Tyrion 开源组件完成 ) import Tyrion import tornado.web import tornado.iol ...

  3. vue iview表单验证,清除表单验证/去掉表单验证的*号

    前言: 最近写isop项目遇到的问题, 表单验证,默认的iview写法加上prop,在data里面定义,input前面就会有个红色的号,表示这里必填加了验证,测试觉得这个号碍眼,让我去掉,第一次遇到这 ...

  4. jQuery html5Validate基于HTML5表单验证插件

    更新于2016-02-25 前面提到的新版目前线上已经可以访问: http://mp.gtimg.cn/old_mp/assets/js/common/ui/Validate.js demo体验狠狠地 ...

  5. AngularJS中的表单验证机制

    客户端表单验证是AngularJS里面最酷的功能之一. AngularJS表单验证可以让你从一开始就写出一个具有交互性和可响应的现代化HTML5表单. angularJs实现了大多数的HTML5表单域 ...

  6. 如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  7. angular js创建表单_如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  8. antd 验证 动态 required_3分钟短文:十年窖藏,Laravel告诉你表单验证的正确姿势

    引言 上一章我讲到了使用FormBuilder让后端开发者快速构建前端表单页面,而为了示例, 直接在store方法内把表单数据一股脑存到了数据库. 这!很!危!险! 本文教你正确地验证用户表单提交的数 ...

  9. Laravel POST请求API接口 使用validate表单验证返回欢迎页

    突然遇到的问题  就是使用Laravel进行开发API接口的时候  发现在表单验证不通过的时候返回了登录页 猜测问题应该是因为表单验证失败后进行了重定向导致的 因为返回状态码200 网上找了好久没找到 ...

最新文章

  1. Windows热键注册(反汇编方法 查看win32api 原理)
  2. 多图 | 搞懂volatile和synchronized的区别
  3. 人工智能是未来发展趋势吗 用Python入门怎么样 赶紧看看
  4. php mongo 类,mongo php类
  5. android 日历_适用于Android的十大最佳日历应用
  6. AtCoder Grand Contest 018 A
  7. c# word文档与二进制数据的相互转换
  8. properties文件_spring boot 配置文件yaml和properties
  9. C语言冒泡排序代码示例
  10. 数据仓库工具hive面试题集锦
  11. Arduino ESP8266利用定时器中断控制LED闪烁示例程序
  12. 友善串口工具 电子秤_Serial Port Utility(友善串口调试助手)
  13. 纳米数据世界杯足球基础数据,接口文档,接口api调试,数据接口演示
  14. image could not be accessed on a registry to record its digest
  15. 洛谷P1551 亲戚(并查集)
  16. Ubuntu-的前世今生
  17. Fabric CA官方文档翻译——Planning for a CA
  18. (附源码)ssm失物招领系统 毕业设计 182317
  19. 第36.5节 动画-跟踪运动中物体的操作器
  20. android动态修改refresh rate,Lenovo k860i 移植Android 4.4 cm11进度记录【下篇--实时更新中】...

热门文章

  1. Could not transfer artifact (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_v
  2. LVS原理详解(4种工作模式)
  3. Docker容器搭建运行python深度学习环境
  4. 使用NSIS制作多版本Revit插件(Revit二次开发)
  5. 【老码农的技术理想】
  6. fama matlab源码_Fama French (1996)3因子模型 论文数据及matlab程序
  7. 读书笔记-Coordinated Deep Reinforcement Learners for Traffic Light Control
  8. Godot3游戏引擎入门之零一:【翻译】为什么要选择 Godot 引擎
  9. 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵...
  10. 【数模之文本文件操作】