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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
mysq GBKl乱码
Nov 28 PHP
php 清除网页病毒的方法
Dec 05 PHP
php的字符串用法小结
Jun 08 PHP
8个出色的WordPress SEO插件收集
Feb 26 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
PHP number_format函数原理及实例解析
Jul 14 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水印技术
2007/02/14 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python基础之函数用法实例详解
2014/09/10 Python
Python 的 Socket 编程
2015/03/24 Python
从Python程序中访问Java类的简单示例
2015/04/20 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
Python用for循环实现九九乘法表
2018/05/31 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
环保倡议书格式范文
2014/05/14 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
民事二审代理词
2015/05/25 职场文书
2015入党个人自传范文
2015/06/26 职场文书
超市店长竞聘书
2015/09/15 职场文书
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android