laravel 驗(yàn)證
驗(yàn)證是設(shè)計(jì)應(yīng)用程序時(shí)最重要的方面。它驗(yàn)證傳入的數(shù)據(jù)。默認(rèn)情況下,基本控制器類使用 validatesrequests 特性,該特性提供了一種方便的方法來驗(yàn)證具有各種強(qiáng)大驗(yàn)證規(guī)則的傳入http請求。
laravel的可用驗(yàn)證規(guī)則
laravel將始終檢查會話數(shù)據(jù)中的錯(cuò)誤,并在它們可用時(shí)自動(dòng)將它們綁定到視圖。所以,需要注意的一點(diǎn)是 $ errors 變量將始終在每個(gè)請求的所有視圖中可用,這使您可以方便地假設(shè) $ errors 變量始終被定義并且可以安全地使用。下表顯示了laravel中所有可用的驗(yàn)證規(guī)則。
laravel的可用驗(yàn)證規(guī)則 | ||
---|---|---|
公認(rèn) | 活動(dòng)網(wǎng)址 | 之后(日期) |
Α | 阿爾法破折號 | alpha數(shù)字 |
排列 | 之前(日期) | 之間 |
布爾 | 確認(rèn) | 日期 |
日期格式 | 不同 | 數(shù)字 |
數(shù)字之間 | 電子郵件 | 存在(數(shù)據(jù)庫) |
圖像文件) | 在 | 整數(shù) |
ip地址 | json | 馬克斯 |
mime類型(文件) | 敏 | 不在 |
數(shù)字 | 正則表達(dá)式 | 需要 |
必需如果 | 必需除非 | 必需 |
全部需要 | 沒有要求 | 沒有全部需要 |
相同 | 尺寸 | 串 |
時(shí)區(qū) | 獨(dú)特(數(shù)據(jù)庫) | 網(wǎng)址 |
在 $錯(cuò)誤 變量將是實(shí)例 照亮的\ support \ messagebag 。通過添加如下所示的代碼,可以在查看文件中顯示錯(cuò)誤消息。
@if (count($errors) > 0)@endif@foreach ($errors->all() as $error)
- {{ $error }}
@endforeach
例
第1步 - 通過執(zhí)行以下命令創(chuàng)建一個(gè)名為 validationcontroller 的控制器。
php artisan make:controller validationcontroller --plain
第2步 - 成功執(zhí)行后,您將收到以下輸出 -
第3步 - 復(fù)制下面的代碼
app / http / controllers / validationcontroller.php 文件。
應(yīng)用程序/ http /控制器/ validationcontroller.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步 - 創(chuàng)建一個(gè)名為 resources / views / login.blade.php 的視圖文件,并將以下代碼復(fù)制到該文件中。
資源/視圖/ login.blade.php
login form @if (count($errors) > 0)@endif echo form::open(array('url'=-->'/validation')); ?>@foreach ($errors->all() as $error)
- {{ $error }}
@endforeach
login | |
username | echo form::text('username'); |
password | echo form::password('password'); |
echo form::submit('login'); ? --> |
第5步 - 在 app / http / routes.php中 添加以下行。
應(yīng)用程序/ http / routes.php文件
route::get('/validation','validationcontroller@showform'); route::post('/validation','validationcontroller@validateform');
第6步 - 訪問以下url以測試驗(yàn)證。
http://localhost:8000/validation
第7步 - 單擊 登錄 按鈕,而無需在文本字段中輸入任何內(nèi)容。輸出將如下圖所示。