Session trong CakePHP cũng như biến $_SESSION nó cung cấp một cách lưu lại dữ liệu của người dùng giữa các trang.

Khai báo:

Chúng ta đã tìm hiểu Helper và Component thông qua 2 biến $helper và $component

Cách khai báo của chúng như sau:

public $helpers = array('Html','Form');
public $components = array('Data', 'Acl');

Các thành phần trên: Html, Form, Data, Acl… phải khai báo đúng vào 2 biến $helper, $component. Nhưng đối với Session thì khai báo ở biến nào cũng có thể sử dụng(mình thường dùng trong biến $component)

public $helper = array('Html','Session');
public $components = array('Data','Session');

Sử dụng:

1) Tạo session: write($name, $value)

– Lưu session có giá trị $value và biến $name.

– $name có thể sử dung thêm dấu “.” để tạo thành mảng

//Viết theo cách bình thường
$this->Session->write('Username','nongdanit');
//Viết theo dạng mảng Name
$this->Session->write('Name.fullname','Nguyen Van A');
$this->Session->write('Name.email','abc@nongdanit.info');

2) Gọi session : read($name) sử dụng giá trị của session thông qua $name

Gọi lại session đã tạo ở trên:

echo $this->Session->read('Username');// nongdanit
$mang = $this->Session->read('Name');// biến $mang là một array

3) Kiểm tra session: check($name) kiểm tra xem có tồn tại session có tên $name hay không return ra true hoặc false

if($this->Session->check('Username')){

//return true

}else{

//return false

}

4) Đọc và xóa: consume($name) đọc và xóa giá trị session có tên $name, điều này hữu ít khi muốn đọc và xóa session ngay

$abc = $this->Session->consume('Username');

5) Xóa session: delete($name) xóa giá trị session có tên $name

$this->Session->delete('Username'); //Xóa session bình thường
$this->Session->delete('Name.email');// Xóa 1 session trong mảng
$this->Session->delete('Name'); //Xóa toàn bộ session trong mảng

6) Xóa toàn bộ cookie và session: destroy()

$this->Session->destroy();

7) Tạo thông báo: setFlash(string $message, string $element = ‘default’, array $params = array(), string $key = ‘flash’)

– $message: nội dung thông báo.

– $element: mặc định là default, load file hiển thị nội dung thông báo (một templete) là file .ctp trong thư mục app/View/Elements/

– $params: chứa các thuộc tính về  id, class, style,…

– $key: có thể rỗng mặc định là flash

Ví dụ: ta tạo file thông báo flash_custom.ctp trong thư mục app/View/Elements/ có nội dung

<div id="abc" class='ex' style="color: red;"><?php echo $message; ?></div>

Sau đó thực hiện lệnh trong controller là:

$this->Session->setFlash(
 'Example message text flash_custom',
 'flash_custom'
);

Khi được hiển thị ngoài view thì flash_custom.ctp sẽ là:

<div id="abc" class="ex" style="color: red;">Example message text flash_custom </div>

Bài hướng dẫn đến đây là hết. Các bạn tải các file về chạy thử với url: http://localhost:8080/cakephp/sessions/index

2015-10-19_164110

[create_button_post thamso1=” thamso2=’Demo’ thamso3=’http://nongdanit.info/download/cakephp/bai11/bai-11.rar’] [/create_button_post]

[thongbao]

  1. Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
  2. Cảm ơn các bạn đã đọc.

[/thongbao]

[Cakephp] Bài 11 – Sử dụng session trong CakePHP

Leave a Reply