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实现ping
Oct 09 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
PHP实现事件机制的方法
Jul 10 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
goto语法在PHP中的使用教程
Sep 17 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
PDO::getAttribute讲解
2019/01/28 PHP
一些常用的Javascript函数
2006/12/22 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
javascript判断office版本示例
2014/04/11 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
用python代码做configure文件
2014/07/20 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Python中join和split用法实例
2015/04/14 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
深入浅析Python的类
2018/06/22 Python
分析python请求数据
2018/08/19 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
求职信标题怎么写
2014/05/26 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
本溪水洞导游词
2015/02/11 职场文书
同学聚会感言一句话
2015/07/30 职场文书
高中地理教学反思
2016/02/19 职场文书