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文件。

应用程序/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的视图文件,并将以下代码复制到该文件中。

资源/视图/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中添加以下行。

应用程序/Http/routes.php

Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');

步骤 6 - 访问以下 URL 来测试验证。

http://localhost:8000/validation

步骤 7 - 单击“登录”按钮,无需在文本字段中输入任何内容。输出将如下图所示。

登录