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读取MySQL数据代码
Jun 05 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
Jun 12 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
PHP 对象接口简单实现方法示例
Apr 13 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
android上传图片到PHP的过程详解
2015/08/03 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python数据封装json格式数据
2018/03/04 Python
浅谈flask源码之请求过程
2018/07/26 Python
Python中的 enum 模块源码详析
2019/01/09 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
物业管理应届生求职信
2013/10/28 职场文书
上课玩手机检讨书
2014/02/08 职场文书
打架检讨书2000字
2014/02/22 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
大学生安全责任书
2014/07/25 职场文书
暑假学习心得体会
2014/09/02 职场文书
2014年工人工作总结
2014/11/25 职场文书
杜甫草堂导游词
2015/02/03 职场文书
初中重阳节活动总结
2015/05/05 职场文书
紫日观后感
2015/06/05 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
python中数组和列表的简单实例
2022/03/25 Python