CodeIgniter - Flashdata

Saat membangun aplikasi web, kami perlu menyimpan beberapa data hanya untuk satu kali dan setelah itu kami ingin menghapus data tersebut. Misalnya untuk menampilkan beberapa pesan error atau pesan informasi. Di PHP, kita harus melakukannya secara manual tetapi CodeIgniter telah membuat pekerjaan ini sederhana untuk kita. Di CodeIgniter, flashdata hanya akan tersedia hingga permintaan berikutnya, dan akan dihapus secara otomatis.

Tambahkan Flashdata

Kami cukup menyimpan flashdata seperti yang ditunjukkan di bawah ini.

$this->session->mark_as_flash('item');
  • mark_as_flash()fungsi digunakan untuk tujuan ini, yang hanya membutuhkan satu argumen dari nilai yang akan disimpan. Kita juga bisa mengirimkan array untuk menyimpan banyak nilai.

  • set_flashdata()fungsi juga dapat digunakan, yang membutuhkan dua argumen, nama dan nilai, seperti yang ditunjukkan di bawah ini. Kita juga bisa melewatkan array.

$this->session->set_flashdata('item','value');

Ambil Flashdata

Flashdata bisa diambil menggunakan fungsi flashdata () yang mengambil satu argumen dari item yang akan diambil seperti yang ditunjukkan di bawah ini. fungsi flashdata () memastikan bahwa Anda hanya mendapatkan data flash dan bukan data lainnya.

$this->session->flashdata('item');

Jika Anda tidak memberikan argumen apa pun, Anda bisa mendapatkan array dengan fungsi yang sama.

Contoh

Buat kelas bernama FlashData_Controller.php dan simpan di application/controller/FlashData_Controller.php.

<?php 
   class FlashData_Controller extends CI_Controller {
	
      public function index() { 
         //Load session library 
         $this->load->library('session');
			
         //redirect to home page 
         $this->load->view('flashdata_home'); 
      } 
  
      public function add() { 
         //Load session library 
         $this->load->library('session'); 
         $this->load->helper('url'); 
   
         //add flash data 
         $this->session->set_flashdata('item','item-value'); 
   
         //redirect to home page 
         redirect('flashdata'); 
      } 
   } 
?>

Buat file tampilan bernama flashdata_home.php dan simpan di application/views/ flashdata_home.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Flashdata Example</title> 
   </head>
	
   <body> 
      Flash Data Example 
      <h2><?php echo $this->session->flashdata('item'); ?></h2> 
      <a href = 'flashdata/add'>Click Here</a> to add flash data. 
   </body>
	
</html>

Lakukan perubahan di routes.php mengajukan application/config/routes.php dan tambahkan baris berikut di akhir file.

$route['flashdata'] = 'FlashData_Controller'; 
$route['flashdata/add'] = 'FlashData_Controller/add';

Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs Anda.

http://yoursite.com/index.php/flashdata

Setelah mengunjungi URL di atas, Anda akan melihat layar seperti di bawah ini.

Klik "Click Here”Dan Anda akan melihat layar seperti yang ditunjukkan di bawah ini. Di sini, di layar ini Anda akan melihat nilai variabel data flash. Refresh halaman lagi dan Anda akan melihat layar seperti di atas dan variabel data flash akan dihapus secara otomatis.