CodeIgniter - Données Flash

Lors de la création d'une application Web, nous ne devons stocker certaines données qu'une seule fois, puis nous souhaitons supprimer ces données. Par exemple, pour afficher un message d'erreur ou un message d'information. En PHP, nous devons le faire manuellement mais CodeIgniter a simplifié ce travail pour nous. Dans CodeIgniter, les données flash ne seront disponibles que jusqu'à la prochaine requête et seront supprimées automatiquement.

Ajouter des données Flash

Nous pouvons simplement stocker des données flash comme indiqué ci-dessous.

$this->session->mark_as_flash('item');
  • mark_as_flash()function est utilisée à cet effet, qui ne prend qu'un seul argument de la valeur à stocker. Nous pouvons également passer un tableau pour stocker plusieurs valeurs.

  • set_flashdata()fonction peut également être utilisée, qui prend deux arguments, nom et valeur, comme indiqué ci-dessous. Nous pouvons également passer un tableau.

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

Récupérer les données Flash

Les données Flash peuvent être récupérées à l'aide de la fonction flashdata () qui prend un argument de l'élément à récupérer comme indiqué ci-dessous. La fonction flashdata () s'assure que vous n'obtenez que des données flash et pas d'autres données.

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

Si vous ne passez aucun argument, vous pouvez obtenir un tableau avec la même fonction.

Exemple

Créez une classe appelée FlashData_Controller.php et enregistrez-le à 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'); 
      } 
   } 
?>

Créez un fichier de vue appelé flashdata_home.php et enregistrez-le dans 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>

Apportez les modifications dans le routes.php déposer dans application/config/routes.php et ajoutez la ligne suivante à la fin du fichier.

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

Exécutez l'exemple ci-dessus en visitant le lien suivant. Remplacez yoursite.com par l'URL de votre site.

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

Après avoir visité l'URL ci-dessus, vous verrez un écran comme indiqué ci-dessous.

Cliquer sur "Click Here”Et vous verrez un écran comme indiqué ci-dessous. Ici, dans cet écran, vous verrez une valeur de variable de données flash. Actualisez à nouveau la page et vous verrez un écran comme ci-dessus et la variable de données flash sera supprimée automatiquement.