验证(Validation)
优质
小牛编辑
138浏览
2023-12-01
验证是设计应用程序时最重要的方面。 它验证传入的数据。 默认情况下,基本控制器类使用ValidatesRequests特性,该特征提供了一种方便的方法,可以使用各种强大的验证规则验证传入的HTTP请求。
Laravel中可用的验证规则
Laravel将始终检查会话数据中的错误,并自动将它们绑定到视图(如果可用)。 因此,重要的是要注意每个请求的所有视图中都会提供$errors变量,这样您就可以方便地假设$errors变量始终定义并且可以安全使用。 下表显示了Laravel中所有可用的验证规则。
Laravel中可用的验证规则 | ||
---|---|---|
Accepted | 活动网址 | 之后(日期) |
Alpha | Alpha Dash | Alpha数字 |
Array | 之前(日期) | Between |
Boolean | Confirmed | Date |
日期格式 | Different | Digits |
之间的数字 | 存在(数据库) | |
图像文件) | In | Integer |
IP地址 | JSON | Max |
MIME类型(文件) | Min | 不在 |
Numeric | 正则表达式 | Required |
必需如果 | 要求除非 | 必需的 |
全部要求 | 没有要求 | 没有全部要求 |
Same | Size | String |
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 - 成功执行后,您将收到以下输出 -
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按钮,不在文本字段中输入任何内容。 输出结果如下图所示。