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 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
谈谈PHP语法(3)
Oct 09 PHP
如何做到多笔资料的同步
Oct 09 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
php入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
php使用PDO方法详解
Dec 27 PHP
Yii使用技巧大汇总
Dec 29 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP与Perl之间知识点区别整理
Mar 19 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
vue router demo详解
2017/10/13 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
Python中常用的内置方法
2019/01/28 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
基于python的Paxos算法实现
2019/07/03 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
Python 列表的清空方式
2020/01/13 Python
Python @property装饰器原理解析
2020/01/22 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python控制台实现交互式环境执行
2020/06/09 Python
python设置表格边框的具体方法
2020/07/17 Python
户籍证明的格式
2014/01/13 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL