- Laravel 教程
- Laravel - 首页
- Laravel - 概述
- Laravel - 安装
- Laravel - 应用结构
- Laravel - 配置
- Laravel - 路由
- Laravel - 中间件
- Laravel - 命名空间
- Laravel - 控制器
- Laravel - 请求
- Laravel - Cookie
- Laravel - 响应
- Laravel - 视图
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 数据库操作
- Laravel - 错误与日志
- Laravel - 表单
- Laravel - 本地化
- Laravel - Session
- Laravel - 验证
- Laravel - 文件上传
- Laravel - 发送邮件
- Laravel - Ajax
- Laravel - 错误处理
- Laravel - 事件处理
- Laravel - Facades
- Laravel - Contracts
- Laravel - CSRF 保护
- Laravel - 身份验证
- Laravel - 授权
- Laravel - Artisan 命令行
- Laravel - 加密
- Laravel - 哈希
- 理解发布流程
- Laravel - 客人用户权限
- Laravel - Artisan 命令
- Laravel - 分页自定义
- Laravel - Dump Server
- Laravel - Action URL
- Laravel 有用资源
- Laravel - 快速指南
- Laravel - 有用资源
- Laravel - 讨论
Laravel - 验证
验证是设计应用程序时最重要的方面之一。它验证传入的数据。默认情况下,基础控制器类使用ValidatesRequests特性,该特性提供了一种方便的方法来使用各种强大的验证规则来验证传入的HTTP请求。
Laravel 中可用的验证规则
Laravel 将始终检查会话数据中的错误,如果可用,则自动将其绑定到视图。因此,重要的是要注意,$errors变量将在每次请求中始终可在您的所有视图中使用,允许您方便地假设$errors变量始终已定义并且可以安全使用。下表显示了 Laravel 中所有可用的验证规则。
Laravel 中可用的验证规则 | ||
---|---|---|
已接受 | 有效网址 | 之后 (日期) |
字母 | 字母数字短划线 | 字母数字 |
数组 | 之前 (日期) | 介于两者之间 |
布尔值 | 已确认 | 日期 |
日期格式 | 不同 | 数字 |
数字范围 | 电子邮件 | 存在 (数据库) |
图片 (文件) | 在…之中 | 整数 |
IP 地址 | JSON | 最大值 |
MIME 类型(文件) | 最小值 | 不在…之中 |
数值 | 正则表达式 | 必需 |
如果必需 | 除非必需 | 与…一起必需 |
与所有一起必需 | 无…时必需 | 无所有时必需 |
相同 | 大小 | 字符串 |
时区 | 唯一 (数据库) | 网址 |
$errors变量将是Illuminate\Support\MessageBag的实例。错误消息可以通过添加如下所示的代码在视图文件中显示。
@if (count($errors) > 0) <div class = "alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
示例
步骤 1 - 通过执行以下命令创建一个名为ValidationController的控制器。
php artisan make:controller ValidationController --plain
步骤 2 - 成功执行后,您将收到以下输出:
步骤 3 - 将以下代码复制到
app/Http/Controllers/ValidationController.php 文件。
app/Http/Controllers/ValidationController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class ValidationController extends Controller { public function showform() { return view('login'); } public function validateform(Request $request) { print_r($request->all()); $this->validate($request,[ 'username'=>'required|max:8', 'password'=>'required' ]); } }
步骤 4 - 创建一个名为resources/views/login.blade.php的视图文件,并将以下代码复制到该文件中。
resources/views/login.blade.php
<html> <head> <title>Login Form</title> </head> <body> @if (count($errors) > 0) <div class = "alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <?php echo Form::open(array('url'=>'/validation')); ?> <table border = '1'> <tr> <td align = 'center' colspan = '2'>Login</td> </tr> <tr> <td>Username</td> <td><?php echo Form::text('username'); ?></td> </tr> <tr> <td>Password</td> <td><?php echo Form::password('password'); ?></td> </tr> <tr> <td align = 'center' colspan = '2' ><?php echo Form::submit('Login'); ? ></td> </tr> </table> <?php echo Form::close(); ?> </body> </html>
步骤 5 - 在app/Http/routes.php中添加以下几行。
app/Http/routes.php
Route::get('/validation','ValidationController@showform'); Route::post('/validation','ValidationController@validateform');
步骤 6 - 访问以下网址以测试验证。
https://127.0.0.1:8000/validation
步骤 7 - 单击“登录”按钮,无需在文本字段中输入任何内容。输出将如下图所示。
广告