目录

Laravel - 验证( Validation)

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

Laravel中可用的验证规则

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

Laravel中可用的验证规则
Accepted 活动网址 之后(日期)
Alpha Alpha Dash Alpha数字
Array 之前(日期) Between
BooleanConfirmedDate
日期格式 DifferentDigits
之间的数字 E-Mail 存在(数据库)
图像文件) InInteger
IP地址 JSONMax
MIME类型(文件) Min 不在
Numeric 正则表达式 Required
必需如果 要求除非 必需的
全部要求 没有要求 没有全部要求
SameSizeString
Timezone 独特(数据库) 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

例子 (Example)

Step 1 - 通过执行以下命令创建一个名为ValidationController的控制器。

php artisan make:controller ValidationController --plain

Step 2 - 成功执行后,您将收到以下输出 -

ValidationController

Step 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'
      ]);
   }
}

Step 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>

Step 5 - 在app/Http/routes.php添加以下行。

app/Http/routes.php

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

Step 6 - 访问以下URL以测试验证。

http://localhost:8000/validation

Step 7 - 单击“ Login按钮,不在文本字段中输入任何内容。 输出结果如下图所示。

登录
↑回到顶部↑
WIKI教程 @2018