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 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
PHP观察者模式原理与简单实现方法示例
Aug 25 PHP
PHP封装的完整分页类示例
Aug 21 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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防注入漏洞过滤函数代码
2012/04/11 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
python xpath获取页面注释的方法
2019/01/14 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python常用函数与用法示例
2019/07/02 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
农行实习自我鉴定
2013/09/22 职场文书
预备党员的自我评价
2014/03/12 职场文书
文化建设工作方案
2014/05/12 职场文书
委托书的格式
2014/08/01 职场文书
会计求职信怎么写
2015/03/20 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
只用20行Python代码实现屏幕录制功能
2021/06/02 Python