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

登录