Cơ bản về laravel phần 3 hướng dẫn sử dụng session trong Laravel và một số helper hữu dụng trong Laravel như array, string, miscellaneous…
Mục lục
Session trong Laravel
Session là nơi lưu thông tin của riêng người dùng trên server. Laravel hỗ trợ lưu session vào file (mặc định), database, memcache, array…
Có 2 cách sử dụng session, đó là dùng session helper hoặc dùng đối tượng Request
Lưu dữ liệu vào session
Để lưu 1 biến vào session, bạn dùng 1 trong 2 cách sau
- Cách 1: Dùng đối tượng request :
$request->session()->put(‘key’, ‘value’); - Cách 2: Dùng hảm session helper:
session([‘key’ => ‘value’]);
Lấy giá trị từ session
Đế lấ giá trị 1 biến trong session, cũng có thể dùng 2 cách
- Cách 1: Dùng đối tượng request
$value = $request->session()->get(‘key’, ‘default’); - Cách 2: Dùng session helper
$value = session(‘key’);
Ví dụ:
Route::get("/test1", function(){ session(['hoten' => 'Văn Tèo', 'role'=> 1]); }); Route::get("/test2", function(){ echo session('hoten') ; echo session('username', 'Chưa đăng nhập') ; });
Ví dụ 2:
use Illuminate\Http\Request; Route::get("/test1", function(Request $request){ $request->session()->put('hoten', 'Văn Tèo'); }); Route::get("/test2", function(Request $request){ $un = $request->session()->get('un', 'Chưa đăng nhập'); $ht = $request->session()->get('hoten'); echo $ht, " ", $un; });
Xác định key có tồn tại trong session không
Để xác định có 1 biến trong session hay không, dùng hàm has() hoặc exitst()
Route::get("/test2", function(Request $request){ if ($request->session()->has('hoten')) { echo "Có hoten"; } else { echo "Không có"; } });
Lấy giá trị 1 biến từ session và xóa luôn
use Illuminate\Http\Request; Route::get("/test1", function(Request $request){ $request->session()->put('hoten', 'Văn Tèo1'); }); Route::get("/test2", function(Request $request){ $ht = $request->session()->pull('hoten','Quý khách'); echo $ht; });
Chạy test1 1 lần, test2 2 lần sẽ thấy hiện quý khách
Flash data
Là các item trong session chỉ dùng cho request kế tiếp, tự động bị xóa ở các request sau đó.
use Illuminate\Http\Request; Route::get("/test1", function(Request $request){ $request->session()->flash('thongbao', 'Đã xóa thành công'); }); Route::get("/test2", function(Request $request){ $tb = $request->session()->get('thongbao'); echo $tb; });
Chạy test1 1 lần, kế tiếp chạy test2 sẽ thấy thông báo, chạy test2 lần nữa sẽ không còn thấy
Xóa dữ liệu trong session
Dùng hàm forget() để xóa 1 biến, hoặc dùng flush() để xóa hết.
use Illuminate\Http\Request; Route::get("/test1", function(Request $request){ $request->session()->put('un', 'teo'); $request->session()->put('ht', 'Văn Tèo'); $request->session()->put('email', 'teonv@gmail.com'); }); Route::get("/test2", function(Request $request){ $arr = $request->session()->all(); //hiện hết 3 biến session echo "<pre>"; print_r($arr); $request->session()->forget('email');//xóa email print_r($request->session()->all() );//chỉ còn un,ht $request->session()->flush(); //xóa hết print_r($request->session()->all() );//không còn biến nào });
Các helper thường dùng
Array Helper trong laravel
Array helper chứa các hàm xử lý array rất hay.
Array::random(): lấy 1 phần tử ngẫu nhiên trong mảng
use Illuminate\Support\Arr; Route::get("/test1", function(){ $arr = [1, 2, 3, 4, 5]; echo $r = Arr::random($arr); // 2 });
Array::Sort() : Hàm này giúp sắp xếp mảng theo các giá trị của phần tử
use Illuminate\Support\Arr; Route::get("/test1", function(){ $arr = ['Vui', 'Cười', 'An','Nhẹ']; $sorted = Arr::sort($arr); print_r($sorted);//[An, Cười , Nhẹ , Vui] }); use Illuminate\Support\Arr; Route::get("/test1", function(){ $arr = ['Vui', 'Cười', 'An','Nhẹ']; $sorted = Arr::sortDesc($arr); print_r($sorted);//[Vui, Nhẹ, Cười, An] });
Array::add() : Thêm cặp name/value vào mảng nếu key không có hoặc là null
use Illuminate\Support\Arr; Route::get("/test1", function(){ $array = Arr::add(['name' => 'Desk'], 'price', 100); // ['name' => 'Desk', 'price' => 100] $array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100); // ['name' => 'Desk', 'price' => 100] });
Array::exitst() : đây là hàm dùng để kiểm tra xem 1 biến có tồn tại trong mảng không
use Illuminate\Support\Arr; Route::get("/test1", function(){ $arr = ['name' => 'Tèo', 'age' => 17]; $kq = Arr::exists($arr, 'name'); // true $kq = Arr::exists($arr, 'salary'); // false });
Array::Last() Lấy giá trị cuối của mảng thõa điều kiện
use Illuminate\Support\Arr; Route::get("/test1", function(){ $arr = [100, 200, 300, 110]; $last = Arr::last($arr, function ($value, $key) { return $value >= 150; }); // 300 });
Array::First() Lấy giá trị đầu tiên thõa điều kiện
use Illuminate\Support\Arr; Route::get("/test1", function(){ $art = [100, 200, 300]; $first = Arr::first($arr, function ($value, $key) { return $value >= 150; }); // 200 });
Để xem thêm các hàm khác trong Array helper, bạn vào link này: https://laravel.com/docs/10.x/helpers#arrays-and-objects-method-list
String helper trong laravel
String helper chứa các hàm xử lý chuỗi. Sau đây là một vài hàm thường dùng trong string helper.
String::slug() Đây là hàm rất hay, nó giúp bạn tạo ra chuỗi không dấu khi đưa cho nó 1 chuỗi có dấu.
use Illuminate\Support\Str; Route::get("/test1", function(){ $slug = Str::slug('hãY yêU nhAu đi ', '-'); echo $slug;//hay-yeu-nhau-di });
String::startWitdth() Xác định 1 chuỗi có bắt đầu bởi 1 giá trị chỉ định hay không
use Illuminate\Support\Str; Route::get("/test1", function(){ $kq = Str::startsWith('PS12345', 'PS'); // true });
String::endWidth() Xác định 1 chuỗi có kết thúc bởi 1 giá trị nào đó hay không.
use Illuminate\Support\Str; Route::get("/test1", function(){ $kq = Str::endsWith('longnv.name.vn', 'vn');// true });
String::random() Phát sinh chuỗi ngẫu nhiên theo độ dài cho trước
use Illuminate\Support\Str; Route::get("/test1", function(){ $passMoi = Str::random(12); echo $passMoi; //qmtHPYDwgv4A });
String::padLeft() Thêm chuỗi vào bên trái 1 chuỗi mẹ để cho đủ độ dài
use Illuminate\Support\Str; Route::get("/test1", function(){ echo $p = Str::padLeft('1256', 6, '0');//001256 });
String::substr() lấy chuỗi con trong chuỗi mẹ, bắt đầu từ vị trí , với độ dài chỉ định
use Illuminate\Support\Str; Route::get("/test1", function(){ echo $kq = Str::substr('Con kênh xanh xanh', 4, 9); //kênh xanh });
Cần xem thêm các hàm khác trong String helper, mời bạn vào link này: https://laravel.com/docs/10.x/helpers#strings-method-list
URL Helper
URL helper chứa các hàm xử lý liên quan đến url
URL::route() : trả về url của 1 đường route theo tên bạn chỉ ra
Route::get("/test1", function(){ $url1 = route('login'); $url2 = route('sp', ['id' => 1]); echo $url1 , "<br>"; //http://localhost:8000/dangnhap echo $url2; //http://localhost:8000/sp/1 });
URL::url() Trả vê url của đường route cung cấp hoặc dùng không tham số để lấy url hiện hành
Route::get("/test1", function(){ $url1 = url()->current(); echo $url1 , "<br>"; //http://localhost:8000/test1 });
Xem thêm về url helper của Laravel tại đây: https://laravel.com/docs/10.x/helpers#urls-method-list
Miscellaneous helper trong laravel
Miscellaneous helper là những hàm hữu dụng khác.
now() : trả về thời điểm hiện hành
Route::get("/test1", function(){ $n = now(); echo $n ; //2023-02-15 00:32:33 });
today() trả về ngày hiện hành
Route::get("/test1", function(){ $n = today(); echo $n ; //2023-02-15 00:00:00 });
dd() xuất text và dừng laravel ngay lập tức
Route::get("/test1", function(){ dd('Tạm biệt'); echo "Xin chào"; //không chạy });
redirect() : chuyển user sang trang khác, theo path hoặc route name đều được.
Route::get("/test1", function(){ //return redirect('/'); return redirect()->route('login'); });
bcrypt() : Mã hóa 1 chuỗi theo giải thuật bcrypt
Route::get("/test1", function(){ $pass="abc"; $pass_mahoa = bcrypt($pass); echo $pass_mahoa; //$2y$10$LOpEwK1T3caAmWc738BPHef4d5fgkrVswODteaXdfV.hfnGFwRMlq });
Bài cơ bản về laravel phần 3 đến đây thôi. 3 bài cơ bản về Larvel cũng khác đủ để bạn làm dự án rồi đó. Chiến ngon nhé. 🙂