- Laravel 教程
- Laravel - 首頁
- Laravel - 概述
- Laravel - 安裝
- Laravel - 應用結構
- Laravel - 配置
- Laravel - 路由
- Laravel - 中介軟體
- Laravel - 名稱空間
- Laravel - 控制器
- Laravel - 請求
- Laravel - Cookie
- Laravel - 響應
- Laravel - 檢視
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 資料庫操作
- Laravel - 錯誤與日誌
- Laravel - 表單
- Laravel - 本地化
- Laravel - Session
- Laravel - 驗證
- Laravel - 檔案上傳
- Laravel - 傳送郵件
- Laravel - Ajax
- Laravel - 錯誤處理
- Laravel - 事件處理
- Laravel - Facades
- Laravel - Contracts
- Laravel - CSRF 保護
- Laravel - 身份驗證
- Laravel - 授權
- Laravel - Artisan 命令列
- Laravel - 加密
- Laravel - 雜湊
- 理解發布流程
- Laravel - 客人使用者許可權
- Laravel - Artisan 命令
- Laravel - 分頁自定義
- Laravel - Dump Server
- Laravel - Action URL
- Laravel 有用資源
- Laravel - 快速指南
- Laravel - 有用資源
- Laravel - 討論
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 檔案。
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 - 訪問以下網址以測試驗證。
https://:8000/validation
步驟 7 - 單擊“登入”按鈕,無需在文字欄位中輸入任何內容。輸出將如下圖所示。
廣告