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 相关文章推荐
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
php中字符串和整数比较的操作方法
Jun 06 PHP
php的无刷新操作实现方法分析
Feb 28 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+iframe图片上传实现即时刷新效果
2016/11/18 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
Openlayers实现距离面积测量
2020/09/28 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
关于numpy数组轴的使用详解
2019/12/05 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
python多进程使用函数封装实例
2020/05/02 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
演讲稿开场白
2014/01/13 职场文书
数字化校园建设方案
2014/05/03 职场文书
辞职信标准格式
2015/02/27 职场文书
2015年中秋节主持词
2015/07/30 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL