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
如何过滤高亮显示非法字符
Oct 09 PHP
分享PHP入门的学习方法
Jan 02 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
在smarty模板中使用PHP函数的方法
Apr 23 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
PHP数据库操作Helper类完整实例
May 11 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
PHP生成推广海报的方法分享
Apr 22 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 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
windows xp下安装pear
2006/12/02 PHP
php _autoload自动加载类与机制分析
2012/02/10 PHP
浅谈php和.net的区别
2014/09/28 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
用js重建星际争霸
2006/12/22 Javascript
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
企业新年寄语
2014/04/04 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
师德师风自查总结
2014/10/14 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
出纳岗位职责
2015/01/31 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
导师工作推荐信
2015/03/27 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2016年感恩节寄语
2015/12/07 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang