Laravel 验证

Laravel 验证

在设计应用程序时,验证是最重要的方面。它验证传入的数据。默认情况下,基础控制器类使用 ValidatesRequests trait,它提供了一种方便的方法来使用各种强大的验证规则验证传入的HTTP请求。

Laravel 中可用的验证规则

Laravel将始终检查会话数据中的错误,并在视图中自动绑定这些错误(如果可用)。因此,重要的是要注意,在每个请求中,所有视图中都将始终可用一个 $errors 变量,使您可以方便地假设 $errors 变量始终已定义并且可以安全地使用。下表显示了Laravel中所有可用的验证规则。

Available Validation Rules in Laravel
Accepted Active URL After (Date)
Alpha Alpha Dash Alpha Numeric
Array Before (Date) Between
Boolean Confirmed Date
Date Format Different Digits
Digits Between E-Mail Exists (Database)
Image (File) In Integer
IP Address JSON Max
MIME Types(File) Min Not In
Numeric Regular Expression Required
Required If Required Unless Required With
Required With All Required Without Required Without All
Same Size String
Timezone Unique (Database) URL

$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 - 在成功执行之后,您将收到以下输出:

Laravel 验证

步骤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 - 点击 “登录” 按钮,不输入任何内容。输出结果如下图所示。

Laravel 验证

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程