Laravel框架表单验证操作实例分析


Posted in PHP onSeptember 30, 2019

本文实例讲述了Laravel框架表单验证操作。分享给大家供大家参考,具体如下:

public function create(Request $request){
  if($request->isMethod('POST')){
    //验证通过后继续进行
    //方法1 控制器验证
    $this->validate($request,[
      'Student.name' => 'required|min:2|max:20',
      'Student.age' => 'required|integer',
      'Student.sex' => 'required|integer',
    ],[
      'required'=>':attribute 为必填项',
      'min' => ':attribute 长度不符合要求',
      'integer' => ':attribute 必须是一个整形',
    ],[ 'Student.name' => '姓名',
      'Student.age' => '年龄',
      'Student.sex' => '性别',
    ]);
    //方法2 Validator类验证
    $validator = \Validator::make($request->input(),[
      'Student.name' => 'required|min:2|max:20',
      'Student.age' => 'required|integer',
      'Student.sex' => 'required|integer',
    ],[
      'required'=>':attribute 为必填项',
      'min' => ':attribute 长度不符合要求',
      'integer' => ':attribute 必须是一个整形',
    ],[ 'Student.name' => '姓名',
      'Student.age' => '年龄',
      'Student.sex' => '性别',
    ]);
    if($validator->fails()){
      return redirect()->back()->withErrors($validator)->withInput();
    }
    //如果验证通过,则继续执行下面的代码
    $data = $request->input('Student');
    if(Student::create($data)){
      return redirect('student/index')->with('success','添加成功');
    }else{
      return redirect()->back();
    }
  }
  return view('student.create');
}

注意Laravel的create方法,需要在model中

设置允许批量赋值:

protected $fillable = ['name','age'];

web中间件有个作用是防止xss攻击,即csrf,需要在页面的表单中增加{{ csrf_field() }},
会生成一个隐藏的input表单,带个token字段。

错误信息的显示:

控制器中的with方法,可以把信息放入session中

return redirect('Student/index')->with('success','添加成功');

页面中的显示:

@if(Session::has('success'))
<div>
  {{ Session::get('success') }}
</div>
@endif
@if(count($errors))
  <div class="alert alert-danger">
    <ul>
      @foreach($errors->all() as $val)
        <li>{{$val}}</li>
      @endforeach
    </ul>
  </div>
@endif

{{$errors->first()}}可以显示第一条错误信息

数据保持:

return redirect()->back()->withErrors($validator)->withInput();

这段代码中的withInput可以把表单提交的信息带回去,

页面中使用old方法:

姓名 :<input type="text" name="Student[name]" value="{{ old('Student')['name'] }}" />
性别 :
@foreach($student->user_sex() as $ind=>$val)
<input type="radio" name="Student[sex]" value="{{$ind}}" {{ old('Student')['sex']==$ind?'checked':'' }} />{{$val}}
@endforeach

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHPThumb PHP 图片缩略图库
Mar 11 PHP
php类常量的使用详解
Jun 08 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
PHP导出Excel实例讲解
Jan 24 PHP
10个值得深思的PHP面试题
Nov 14 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 PHP
Laravel 自带的Auth验证登录方法
Sep 30 #PHP
laravel 使用auth编写登录的方法
Sep 30 #PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 #PHP
php面试实现反射注入的详细方法
Sep 30 #PHP
laravel5表单唯一验证的实例代码
Sep 30 #PHP
Laravel模糊查询区分大小写的实例
Sep 29 #PHP
基于laravel Request的所有方法详解
Sep 29 #PHP
You might like
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php实现的ping端口函数实例
2014/11/12 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
php PDO异常处理详解
2016/11/20 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
python 文件与目录操作
2008/12/24 Python
Python解决鸡兔同笼问题的方法
2014/12/20 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
python反编译学习之字节码详解
2019/05/19 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
网络技术专业推荐信
2014/02/20 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
化妆品活动策划方案
2014/05/23 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
2014年人事专员工作总结
2014/11/19 职场文书