Laravel5.1 框架表单验证操作实例详解


Posted in PHP onJanuary 07, 2020

本文实例讲述了Laravel5.1 框架表单验证操作。分享给大家供大家参考,具体如下:

当我们提交表单时 通常会对提交过来的数据进行一些验证、Laravel在Controller类中使用了一个traint:ValidatesRequest。方便我们在控制器中使用验证器。

下面我们就来看一个验证表单的例子。

1 准备

1.1 创建路由

Route::resource('/post', 'PostController');

1.2 创建控制器

php artisan make:controller PostController

1.3 创建视图

在 /views 中创建 /post/create.blade.php 文件,编写如下:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" >
</head>
<body>
<div class="container">
  <div class="row">
    <div class="col-md-8 col-md-offset-2">
      <div class="panel panel-default">
        <div class="panel-heading">
          创建文章
        </div>
        <div class="panel-body">
          <form action="{{ url("/post") }}" method="POST" class="form-horizontal">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <div class="form-group">
              <label class="col-md-4 control-label">标题</label>
              <div class="col-md-6">
                <input type="text" class="form-control" name="title">
              </div>
            </div>
            <div class="form-group">
              <label class="col-md-4 control-label">内容</label>
              <div class="col-md-6">
                <textarea rows="10" class="form-control" name="content"></textarea>
              </div>
            </div>
            <div class="form-group">
              <div class="col-md-6 col-md-offset-4">
                <button class="btn btn-primary" type="submit">Submit</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
</body>
</html>

1.4 在PostController中返回create视图

public function create()
{
    return view('post.create');
}

2 开始验证

2.1 validate

我们在store方法中验证表单提交过来的数据,语法是这样的:

validate() 参数:

  1. request:传入请求就好。
  2. rule:规则数组,把我们的验证逻辑写在这里面。
public function store(Request $request)
{
    $this->validate($request, [
      'title' => 'required|min:3',
      'content' => 'required|min:10',
    ]);
    echo '验证通过';
}

↑ 上面的例子如果验证通过 则显示"验证通过" 如果验证没有通过的话Laravel会自动跳转到表单提交页面 并把错误信息闪存到Session中,我们可以修改create.balde.php文件 添加显示错误代码

2.2 显示错误信息

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" >
</head>
<body>
<div class="container">
  <div class="row">
    <div class="col-md-8 col-md-offset-2">
      <div class="panel panel-default">
        <div class="panel-heading">
          创建文章
        </div>
        <div class="panel-body">
          @if (count($errors) > 0)
            <div class="alert alert-danger">
              <ul>
                @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
                @endforeach
              </ul>
            </div>
          @endif
          <form action="{{ url("/post") }}" method="POST" class="form-horizontal">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <div class="form-group">
              <label class="col-md-4 control-label">标题</label>
              <div class="col-md-6">
                <input type="text" class="form-control" name="title">
              </div>
            </div>
            <div class="form-group">
              <label class="col-md-4 control-label">内容</label>
              <div class="col-md-6">
                <textarea rows="10" class="form-control" name="content"></textarea>
              </div>
            </div>
            <div class="form-group">
              <div class="col-md-6 col-md-offset-4">
                <button class="btn btn-primary" type="submit">Submit</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
</body>
</html>

3 手动创建Validator

public function store(Request $request)
  {
//    $this->validate($request, [
//      'title' => 'required|min:3',
//      'content' => 'required|min:10',
//    ]);
    $validator = Validator::make($request->all(), [
      'title' => 'required|min:3',
      'content' => 'required|min:10',
    ]);
    if ($validator->fails()) {
      return redirect('post/create')
        ->withErrors($validator)
        ->withInput();
    }
    echo '验证通过';
  }

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
十天学会php之第三天
Oct 09 PHP
PHP 图片上传代码
Sep 13 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
请离开include_once和require_once
Jul 18 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
php利用事务处理转账问题
Apr 22 PHP
php给图片加文字水印
Jul 31 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
针对PHP开发安全问题的相关总结
Mar 22 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 PHP
PHP字符串与数组处理函数用法小结
Jan 07 #PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 #PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 #PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 #PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 #PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 #PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 #PHP
You might like
php中的数组操作函数整理
2008/08/18 PHP
PHP缓存技术的使用说明
2011/08/06 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
PHP积分兑换接口实例
2015/02/09 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
Python OS模块常用函数说明
2015/05/23 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
基于python实现学生管理系统
2018/10/17 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
django实现后台显示媒体文件
2020/04/07 Python
深入了解Python 变量作用域
2020/07/24 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
师范应届生语文教师求职信
2013/10/29 职场文书
学雷锋月活动总结
2014/04/25 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
分公司经理任命书
2014/06/05 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
妇产科护理心得体会
2016/01/22 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python