CodeIgniter - Flashdata

Durante la creazione dell'applicazione Web, è necessario memorizzare alcuni dati solo per una volta e successivamente rimuovere tali dati. Ad esempio, per visualizzare un messaggio di errore o un messaggio informativo. In PHP, dobbiamo farlo manualmente ma CodeIgniter ha reso questo lavoro semplice per noi. In CodeIgniter, i dati flash saranno disponibili solo fino alla richiesta successiva e verranno eliminati automaticamente.

Aggiungi Flashdata

Possiamo semplicemente memorizzare i dati flash come mostrato di seguito.

$this->session->mark_as_flash('item');
  • mark_as_flash()a questo scopo viene utilizzata la funzione, che richiede solo un argomento del valore da memorizzare. Possiamo anche passare un array per memorizzare più valori.

  • set_flashdata()può essere utilizzata anche la funzione, che accetta due argomenti, nome e valore, come mostrato di seguito. Possiamo anche passare un array.

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

Recupera dati Flash

Flashdata può essere recuperato utilizzando la funzione flashdata () che accetta un argomento dell'elemento da recuperare come mostrato di seguito. La funzione flashdata () assicura che si ottengano solo dati flash e non altri dati.

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

Se non passi alcun argomento, puoi ottenere un array con la stessa funzione.

Esempio

Crea una classe chiamata FlashData_Controller.php e salvalo in 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'); 
      } 
   } 
?>

Crea un file di visualizzazione chiamato flashdata_home.php e salvalo in 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>

Apporta le modifiche nel file routes.php file in formato application/config/routes.php e aggiungi la seguente riga alla fine del file.

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

Eseguire l'esempio precedente visitando il seguente collegamento. Sostituisci yoursite.com con l'URL del tuo sito.

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

Dopo aver visitato l'URL sopra, vedrai una schermata come mostrato di seguito.

Clicca su "Click Here"E vedrai una schermata come mostrato di seguito. Qui, in questa schermata vedrai un valore della variabile di dati flash. Aggiorna di nuovo la pagina e vedrai una schermata come sopra e la variabile dei dati flash verrà rimossa automaticamente.