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 相关文章推荐
一个MYSQL操作类
Nov 16 PHP
php5 and xml示例
Nov 22 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
php网站地图生成类示例
Jan 13 PHP
PHP防盗链代码实例
Aug 27 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
php实现的中文分词类完整实例
Feb 06 PHP
php集成开发环境详解
Sep 24 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python构造函数init实例方法解析
2020/01/19 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
村庄绿化方案
2014/05/07 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
追讨欠款律师函
2015/05/27 职场文书
初中语文教师研修日志
2015/11/13 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers