Laravel - Xác thực
Xác thực là khía cạnh quan trọng nhất trong khi thiết kế một ứng dụng. Nó xác nhận dữ liệu đến. Theo mặc định, lớp bộ điều khiển cơ sở sử dụngValidatesRequests đặc điểm cung cấp một phương pháp thuận tiện để xác thực các yêu cầu HTTP đến với nhiều quy tắc xác thực mạnh mẽ.
Quy tắc xác thực có sẵn trong Laravel
Laravel sẽ luôn kiểm tra các lỗi trong dữ liệu phiên và tự động liên kết chúng với chế độ xem nếu chúng có sẵn. Vì vậy, điều quan trọng cần lưu ý là$errors biến sẽ luôn có sẵn trong tất cả các chế độ xem của bạn theo mọi yêu cầu, cho phép bạn thuận tiện giả sử $errorsbiến luôn được xác định và có thể được sử dụng một cách an toàn. Bảng sau đây hiển thị tất cả các quy tắc xác thực có sẵn trong Laravel.
Quy tắc xác thực có sẵn trong Laravel | ||
---|---|---|
Đã được chấp nhận | URL hoạt động | Sau (Ngày) |
Alpha | Dấu gạch ngang Alpha | Số Alpha |
Mảng | Trước (Ngày) | Giữa |
Boolean | Đã xác nhận | Ngày |
Định dạng ngày tháng | Khác nhau | Chữ số |
Chữ số giữa | Tồn tại (Cơ sở dữ liệu) | |
Hình ảnh (Tệp) | Trong | Số nguyên |
Địa chỉ IP | JSON | Max |
Các loại MIME (Tệp) | Min | Không có trong |
Số | Biểu hiện thông thường | Cần thiết |
Bắt buộc Nếu | Bắt buộc trừ khi | Yêu cầu Với |
Bắt buộc với tất cả | Bắt buộc Không có | Bắt buộc Không có Tất cả |
Tương tự | Kích thước | Chuỗi |
Múi giờ | Duy nhất (Cơ sở dữ liệu) | URL |
Các $errors biến sẽ là một ví dụ của Illuminate\Support\MessageBag. Thông báo lỗi có thể được hiển thị trong tệp xem bằng cách thêm mã như hình dưới đây.
@if (count($errors) > 0)
<div class = "alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Thí dụ
Step 1 - Tạo một bộ điều khiển được gọi là ValidationController bằng cách thực hiện lệnh sau.
php artisan make:controller ValidationController --plain
Step 2 - Sau khi thực hiện thành công, bạn sẽ nhận được kết quả sau:
Step 3 - Sao chép mã sau vào
app/Http/Controllers/ValidationController.php tập tin.
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 - Tạo một tệp xem được gọi là resources/views/login.blade.php và sao chép mã sau vào tệp đó.
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 - Thêm các dòng sau vào app/Http/routes.php.
app/Http/routes.php
Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');
Step 6 - Truy cập URL sau để kiểm tra xác thực.
http://localhost:8000/validation
Step 7 - Nhấp vào “Login”mà không cần nhập bất kỳ thứ gì vào trường văn bản. Kết quả đầu ra sẽ như trong hình sau.