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.ini中文版(2)
Oct 09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
深入PHP curl参数的详解
Jun 17 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
php接口技术实例详解
Dec 07 PHP
php四种定界符详解
Feb 16 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 获取本地IP代码
2013/06/23 PHP
解析php中的escape函数
2013/06/29 PHP
php生成excel文件的简单方法
2014/02/08 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
如何离线执行php任务
2017/02/21 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
ExpressJS入门实例
2015/01/14 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python字典操作简明总结
2015/04/13 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
会计主管岗位职责范文
2013/11/08 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
六一儿童节主持词
2014/03/21 职场文书
护士长竞聘书
2014/03/31 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2014年教育工作总结
2014/11/26 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
初三毕业感言
2015/07/31 职场文书
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL