CodeIgniter Flashdata


在构建Web应用程序时,我们只需要存储一些数据,然后再删除这些数据。例如,显示一些错误消息或信息消息。在PHP中,我们必须手动完成,但CodeIgniter为我们简化了这项工作。在CodeIgniter中,flashdata只会在下一个请求之前可用,并且会自动删除。

添加Flashdata

我们可以简单地存储flashdata,如下所示。

$this->session->mark_as_flash('item');
  • mark_as_flash() 函数用于此目的,它只存储一个值的参数。我们也可以传递一个数组来存储多个值。

  • **也可以使用 set_flashdata()** 函数,它使用两个参数,名称和值,如下所示。我们也可以传递一个数组。

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

检索Flashdata

Flashdata可以使用flashdata()函数进行检索,该函数将获取该项目的一个参数,如下所示。flashdata()函数确保您只获取闪存数据而不是其他任何数据。

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

如果你不传递任何参数,那么你可以得到一个具有相同函数的数组。

创建一个名为 FlashData_Controller.php 的类并将其保存在 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');
      }
   }
?>

创建一个名为 flashdata_home.php 的视图文件并将其保存在 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>

application / config / routes.php 中的 routes.php 文件中进行更改,并在文件末尾添加以下行。


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

通过访问以下链接执行上述示例。将yoursite.com替换为您网站的网址。

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

访问上述网址后,您将看到一个如下所示的屏幕。

Flash数据

点击“ 点击这里 ”链接,你会看到如下所示的屏幕。 在这里,你会看到一个闪存数据变量的值。再次刷新页面,您将看到如上所示的屏幕,并且Flash数据变量将自动删除。

添加Flash数据