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编程语言开发动态WAP页面
Oct 09 PHP
PHP编程与应用
Oct 09 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
wamp安装后自定义配置的方法
Aug 23 PHP
Yii基于数组和对象的Model查询技巧实例详解
Dec 28 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP快速推送微信模板消息
Apr 14 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
详解Laravel框架的依赖注入功能
May 27 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
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
ppk谈JavaScript style属性
2008/10/10 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
js仿微信公众平台打标签功能
2017/04/08 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python实现网站注册验证码生成类
2017/06/08 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
初中毕业生的自我评价
2014/03/03 职场文书
教师调动申请报告
2015/05/18 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS