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&amp;mysql(六)
Oct 09 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
Apache中php.ini的设置方法
Feb 28 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
php curl选项列表(超详细)
Jul 01 PHP
php中的静态变量的基本用法
Mar 20 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PHP中16个高危函数整理
Sep 19 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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 PDO函数库详解
2010/04/27 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
限制复选框的最大可选数
2006/07/01 Javascript
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
js实现常用排序算法
2016/08/09 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
selenium+python环境配置教程详解
2019/05/28 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
建筑班组长岗位职责
2014/01/02 职场文书
高中运动会广播稿
2014/01/21 职场文书
大学社团活动策划书
2014/01/26 职场文书
打架检讨书300字
2014/02/02 职场文书
新闻报道策划方案
2014/06/11 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2014年学生工作总结
2014/11/20 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
班主任班级管理心得体会
2016/01/07 职场文书