CodeIgniter - Flashdata

Mientras creamos una aplicación web, necesitamos almacenar algunos datos solo una vez y luego queremos eliminar esos datos. Por ejemplo, para mostrar algún mensaje de error o mensaje de información. En PHP, tenemos que hacerlo manualmente, pero CodeIgniter nos ha facilitado este trabajo. En CodeIgniter, flashdata solo estará disponible hasta la próxima solicitud, y se eliminará automáticamente.

Agregar Flashdata

Simplemente podemos almacenar flashdata como se muestra a continuación.

$this->session->mark_as_flash('item');
  • mark_as_flash()La función se usa para este propósito, que toma solo un argumento del valor que se va a almacenar. También podemos pasar una matriz para almacenar varios valores.

  • set_flashdata()También se puede usar la función, que toma dos argumentos, nombre y valor, como se muestra a continuación. También podemos pasar una matriz.

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

Recuperar Flashdata

Flashdata se puede recuperar usando la función flashdata () que toma un argumento del elemento a buscar como se muestra a continuación. La función flashdata () se asegura de que solo obtenga datos flash y no otros datos.

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

Si no pasa ningún argumento, puede obtener una matriz con la misma función.

Ejemplo

Crea una clase llamada FlashData_Controller.php y guárdalo en 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 archivo de vista llamado flashdata_home.php y guárdalo en 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>

Realice los cambios en el routes.php presentar en application/config/routes.php y agregue la siguiente línea al final del archivo.

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

Ejecute el ejemplo anterior visitando el siguiente enlace. Reemplace el yoursite.com con la URL de su sitio.

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

Después de visitar la URL anterior, verá una pantalla como se muestra a continuación.

Haga clic en "Click Here”Y verá una pantalla como se muestra a continuación. Aquí, en esta pantalla, verá un valor de la variable de datos flash. Actualice la página nuevamente y verá una pantalla como la anterior y la variable de datos flash se eliminará automáticamente.