验证是设计应用程序时最重要的方面.它验证传入的数据.默认情况下,基本控制器类使用 ValidatesRequests 特征,它提供了一种方便的方法,可以使用各种强大的验证规则验证传入的HTTP请求.
Laravel将始终检查会话数据中的错误,并自动将它们绑定到视图(如果可用).因此,重要的是要注意每个请求的所有视图中都会始终提供 $ errors 变量,这样您就可以方便地假设 $ errors 变量始终定义并可以安全使用.下表显示了Laravel中所有可用的验证规则.
Laravel中可用的验证规则 | ||
---|---|---|
接受 | 活动网址 | 之后(日期) |
Alpha | Alpha Dash | Alpha数字 |
数组 | 之前(日期) | 介于 |
布尔 | 确认 | 日期 |
日期格式 | 不同 | 数字 |
数字之间 | 电子邮件 | 存在(数据库) |
图像(文件) | In | 整数 |
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步 : 访问以下URL以测试验证.
http://localhost:8000/validation
第7步 : 单击"登录"按钮,不在文本字段中输入任何内容.输出将如下图所示.