laravel

Phiên được sử dụng để lưu trữ thông tin về người dùng trên các yêu cầu. Laravel cung cấp nhiều trình điều khiển khác nhau như tệp, cookie, apc, mảng, Memcached, Redis và cơ sở dữ liệu để xử lý dữ liệu phiên. Theo mặc định, trình điều khiển tệp được sử dụng vì nó nhẹ. Phiên có thể được cấu hình trong tệp được lưu trữ tại config / session.php .

Truy cập dữ liệu phiên

Để truy cập dữ liệu phiên, chúng tôi cần một phiên bản có thể được truy cập thông qua yêu cầu HTTP. Sau khi nhận được phiên bản, chúng ta có thể sử dụng phương thức get () , phương thức này sẽ sử dụng một đối số, “key” , để lấy dữ liệu phiên.

$value = $request->session()->get('key');

Bạn có thể sử dụng phương thức all () để lấy tất cả dữ liệu phiên thay vì phương thức get () .

Lưu trữ dữ liệu phiên

Dữ liệu có thể được lưu trữ trong phiên sử dụng phương thức put () . Phương thức put () sẽ nhận hai đối số, “khóa” và “giá trị” .

$request->session()->put('key', 'value');

Xóa dữ liệu phiên

Phương thức quên () được sử dụng để xóa một mục khỏi phiên. Phương thức này sẽ lấy “key” làm đối số.

$request->session()->forget('key');

Sử dụng phương thức flush () thay vì phương thức quên () để xóa tất cả dữ liệu phiên. Sử dụng phương thức pull () để lấy dữ liệu từ phiên và xóa nó sau đó. Phương thức pull () cũng sẽ lấy khóa làm đối số. Sự khác biệt giữa phương thức quên () và pull () là phương thức quên () sẽ không trả về giá trị của phiên và phương thức pull () sẽ trả về và xóa giá trị đó khỏi phiên.

Thí dụ

Bước 1 – Tạo một bộ điều khiển có tên SessionController bằng cách thực hiện lệnh sau.

php artisan make:controller SessionController --plain

Bước 2 – Sau khi thực hiện thành công, bạn sẽ nhận được kết quả sau:

SessionController

Bước 3 – Sao chép mã sau vào tệp tại

app / Http / Controllers / SessionController.php.app / Http / Controllers / SessionController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class SessionController extends Controller {
   public function accessSessionData(Request $request) {
      if($request->session()->has('my_name'))
         echo $request->session()->get('my_name');
      else
         echo 'No data in the session';
   }
   public function storeSessionData(Request $request) {
      $request->session()->put('my_name','Virat Gandhi');
      echo "Data has been added to session";
   }
   public function deleteSessionData(Request $request) {
      $request->session()->forget('my_name');
      echo "Data has been removed from session.";
   }
}

Bước 4 – Thêm các dòng sau vào tệp app / Http / route.php .

app / Http / route.php

Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');

Bước 5 – Truy cập URL sau để thiết lập dữ liệu trong phiên .

http://localhost:8000/session/set

Bước 6 – Đầu ra sẽ xuất hiện như trong hình sau.

thiết lập dữ liệu trong phiên

Bước 7 – Truy cập URL sau để lấy dữ liệu từ phiên .

http://localhost:8000/session/get

Bước 8 – Đầu ra sẽ xuất hiện như trong hình sau.

ấy dữ liệu từ phiên

Bước 9 – Truy cập URL sau để xóa dữ liệu phiên .

http://localhost:8000/session/remove

Bước 10 – Bạn sẽ thấy một thông báo như trong hình sau.

xóa dữ liệu phiên

Laravel – Validation 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ụng đặc điểm ValidatesRequests 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à biến $ error sẽ luôn có sẵn trong tất cả các chế độ xem của bạn đối với mọi yêu cầu, cho phép bạn thuận tiện giả định rằng biến $ error 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ậnURL hoạt độngSau (Ngày)
AlphaDấu gạch ngang AlphaAlpha Numeric
MảngTrước (Ngày)Giữa
BooleanĐã xác nhậnNgày
Định dạng ngày thángKhác nhauChữ số
Chữ số giữaE-mailTồn tại (Cơ sở dữ liệu)
Hình ảnh (Tệp)TrongSố nguyên
Địa chỉ IPJSONMax
Các loại MIME (Tệp)MinKhông có trong
SốBiểu hiện thông thườngCần thiết
Bắt buộc NếuBắt buộc trừ khiYê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ướcChuỗi
Múi giờDuy nhất (Cơ sở dữ liệu)URL

Biến $ error sẽ là một phiên bản 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ụ

Bước 1 – Tạo một bộ điều khiển có tên là ValidationController bằng cách thực hiện lệnh sau.

php artisan make:controller ValidationController --plain

Bước 2 – Sau khi thực hiện thành công, bạn sẽ nhận được kết quả sau:

ValidationController

Bước 3 – Sao chép mã sau vào

tệp 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'
      ]);
   }
}

Bước 4 – Tạo một tệp xem có tên là resource / views / login.blade.php và sao chép đoạn mã sau vào tệp đó.

resource / 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>

Bước 5 – Thêm các dòng sau vào app / Http / route.php .

app / Http / route.php

Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');

Bước 6 – Truy cập URL sau để kiểm tra xác thực.

http://localhost:8000/validation

Bước 7 – Nhấp vào nút “Đăng nhập” mà không cần nhập bất kỳ thứ gì vào trường văn bản. Đầu ra sẽ như trong hình sau.

Đăng nhập

Trả lời