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发送邮件类代码附详细说明
Jul 10 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 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安装为Apache DSO
2006/10/09 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
判断浏览器的javascript版本的代码
2010/09/03 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python使用Pycharm创建一个Django项目
2018/03/05 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python实现邮件自动发送
2019/08/10 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Keras搭建自编码器操作
2020/07/03 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
店面销售职位的职责
2014/03/09 职场文书
自我查摆剖析材料
2014/10/11 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android