26/10/2018, 20:03

Cookie Trong Laravel

Tất cả cookies dược tạo bởi Laravel framework đều được mã hóa và ký một mã xác thực, nghĩa là chúng có thể bị coi là không hợp lệ nếu nó bị thay đổi phía dưới client. Để lấy một giá trị cookie từ request, sử dụng phương thức cookie từ Illuminate\Http\Request:

Cookie có thể được đính kèm tới response bằng sử dụng phương thức withCookie(). Tạo một response khởi tạo từ Illiminate\Http\Response để gọi phương thức withCookie(). Cookie được tạo ra bằng Laravel được mã hóa và ký tên đóng mọc đỏ, nên nó không thể bị thay đổi hoặc đọc được từ client.

Thiết lập Cookie bằng PHP

return response('name')->cookie('name' ,'giá trị', '$time' ,'$path, '$domain', '$secure');

  • Name − Thiết lập tên của Cookie và nó được lưu trữ trong một biến môi trường là HTTP_COOKIE_VARS. Biến này được sử dụng khi truy cập vào Cookie.

  • Value − Thiết lập giá trị của biến name và nó là nội dung mà bạn thực sự muốn lưu trữ.

  • Time − Chỉ ra hạn sử dụng của Cookie. Thời gian tính bằng giây từ 1/1/1970. Sau thời gian này, Cookie sẽ không thể truy cập. Nếu tham số này không được thiết lập thì Cookie sẽ tự động hết hiệu lực khi trình duyệt bị đóng.

  • Path − Xác định các thư mục mà Cookie có hiệu lực. Một ký tự dấu gạch chéo duy nhất (/) cho phép Cookie có hiệu lực đối tất cả các thư mục.

  • Domain − Xác định tên miền. Tất cả các Cookie chỉ có hiệu lực cho tên miền đã đưa ra.

  • Security − Nó có thể được thiết lập thành 1 để chỉ rằng Cookie này chỉ được gửi bằng truyền dẫn an toàn sử dụng HTTPS, ngược lại nếu thiết lập thành 0, nó có nghĩa rằng Cookie có thể gửi bằng HTTP thông thường.

  • Có rất nhiều tham số trong phương thức thiết lập cookie, tuy nhiên ngắn gọn chỉ cần cung cấp 3 tham số đầu.

  • return response('name')->cookie('name' ,'giá trị' ,'$time');
    // Có tham số thường xuyên xử dụng
  • Nếu bạn muốn tạo một Symfony\Component\HttpFoundation\Cookie có thể response sau một khoảng thời gian, bạn có thể sử dụng helper global cookie. Khi đó cookie sẽ không gửi lại cho client trừ khi nó được gán vào response instance:

  • $cookie = cookie('name' ,'giá trị' ,'$time');
    return response('name')->cookie($cookie);

    Cookie có thể được đính kèm tới response bằng sử dụng phương thức withCookie(). Tạo một response khởi tạo từclass Illiminate\Http\Response để gọi phương thức withCookie(). Cookie được tạo ra bằng Laravel được mã hóa và ký tên đóng mọc đỏ, nên nó không thể bị thay đổi hoặc đọc được từ client.

     
  • Ví dụ tạo cookie trong laravel

  •  

  • namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Http\Response;
    use App\Models\Category;
    
    
    class CategoryController extends Controller
    {
        public function setCookie(){
            $response = new Response();
            //khởi tạo response
            $value = 'Lập trình laravel';
            //gán giá trị của cookie
            $time = 1;
            //gán thời gian tồn tại của cookie tính bằng phút
            $response->withCookie('BuiTu',$value,$time);
            echo "Đã Set Cookie";
            return $response;
            
        }
        public function getCookie(Request $request){
        	echo "Họ Tên Là :";
            return $request->cookie('BuiTu');
        }
    }
    
    //Route
    Route::get('/setcookie',[
    		'uses'=>'\App\Http\Controllers\CategoryController@setCookie',
    		'as'=>'admin.getCookie'
    	]);	
    Route::get('/getcookie',[
    		'uses'=>'\App\Http\Controllers\CategoryController@getCookie',
    		'as'=>'admin.cooke'
    	]);

    Nếu muốn cookie tồn tại mãi mãi ta dùng phương thức forever:

  • $response->withCookie(cookie()->forever('BuiTu',$value));

    Nếu muốn xóa cookie thì chỉ với tham số name nhưng nó không phải lúc nào cũng hoạt động.

  •  

Bài liên quan

Cookie Trong Laravel

Tất cả cookies dược tạo bởi Laravel framework đều được mã hóa và ký một mã xác thực, nghĩa là chúng có thể bị coi là không hợp lệ nếu nó bị thay đổi phía dưới client. Để lấy một giá trị cookie từ request, sử dụng phương thức cookie từ Illuminate\Http\Request:

Bui Anh Tu viết 3 tuần trước

Thủ thuật Eloquent trong Laravel

Trong bài viết này, mình sẽ chia sẻ một vài thủ thuật hay mà bạn có thể làm với Eloquent của Laravel. Như chúng ta đã biết thì Laravel hỗ trợ cho chúng ta nhiều cách để tương tác với cơ sở dữ liệu. Và Eloquent ORM là một thế mạnh rất lớn Laravel có trong khi các framework không hỗ trợ. Vì vậy tại ...

Hoàng Hải Đăng viết 20:57 ngày 11/08/2018

Tự động hóa front-end vs Laravel Mix trong Laravel(P1)

Mình chính xác là 1 coder lười, vì vậy mình muốn mọi thứ đều tự động hóa. Đặc biệt khi mà ngày nay có quá nhiều processor(SASS,LESS,STYLUS...) dành cho CSS, hay việc ES6 đã xuất hiện từ 2015 giúp việc code front-end của chúng ta trở nên uyển chuyển & chuyên nghiệp hơn rất nhiều. Nhưng điều đáng ...

Trịnh Tiến Mạnh viết 20:56 ngày 11/08/2018

Thay đổi thư mục Public trong laravel framework

Trong quá trình làm việc với laravel, đôi khi sẽ có thay đổi chút về thư mục public trong laravel. Cụ thể như khi chạy nó trên các shared hosting thường là chỉ có thư mục public_html hoặc một số qui định bắt buộc ở các môi trường khác nhau mà tên thư mục này sẽ đổi theo, và trong bài này mình sẽ ...

Hoàng Hải Đăng viết 20:51 ngày 11/08/2018

Repository Pattern trong Laravel

Design Pattern là kỹ thuật lập trình cung cấp cho chúng ta các mẫu thiết kế để áp dụng vào các trường hợp cụ thể để giải quyết các bài toán dễ dàng hơn. Các mẫu thiết kế này không phụ thuộc vào ngôn ngữ lập trình, vấn đề là bạn hiểu nguyên lý và áp dụng nó vào code mà thôi. Repository Pattern ...

Trịnh Tiến Mạnh viết 20:40 ngày 11/08/2018
+3