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 empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
php之curl设置超时实例
Nov 03 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
YII使用url组件美化管理的方法
Dec 28 PHP
浅谈PHP安全防护之Web攻击
Jan 03 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
node.js制作一个简单的登录拦截器
2020/02/10 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python中文编码那些事
2014/06/25 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
Golang与python线程详解及简单实例
2017/04/27 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Django实现简单的分页功能
2021/02/22 Python
国际花店:Pickup Flowers
2020/04/10 全球购物
我读书我快乐演讲稿
2014/05/07 职场文书
植树节标语
2014/06/27 职场文书
丽江古城导游词
2015/02/03 职场文书
运动会宣传稿100字
2015/07/23 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书