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 E-mail 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.