无涯教程-CodeIgniter - Flashdata(闪存数据)

62 阅读1分钟

在构建Web应用程序时,无涯教程只需要存储一些数据,然后再删除该数据。如显示一些错误消息或信息消息。在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 完整示例

创建一个名为 FlashData_Controller.php 的类,并将其保存在 application/controller/FlashData_Controller.php 中。

<?php 
   class FlashData_Controller extends CI_Controller {
  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> index</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
     </span><span class="com">//加载 session 库 </span><span class="pln">
     $this</span><span class="pun">-&gt;</span><span class="pln">load</span><span class="pun">-&gt;</span><span class="pln">library</span><span class="pun">(</span><span class="str">session</span><span class="pun">);</span><span class="pln">
		
     </span><span class="com">//重定向到主页</span><span class="pln">
     $this</span><span class="pun">-&gt;</span><span class="pln">load</span><span class="pun">-&gt;</span><span class="pln">view</span><span class="pun">(</span><span class="str">flashdata_home</span><span class="pun">);</span><span class="pln"> 
  </span><span class="pun">}</span><span class="pln"> 

  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="kwd">add</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
     </span><span class="com">//加载 session 库 </span><span class="pln">
     $this</span><span class="pun">-&gt;</span><span class="pln">load</span><span class="pun">-&gt;</span><span class="pln">library</span><span class="pun">(</span><span class="str">session</span><span class="pun">);</span><span class="pln"> 
     $this</span><span class="pun">-&gt;</span><span class="pln">load</span><span class="pun">-&gt;</span><span class="pln">helper</span><span class="pun">(</span><span class="str">url</span><span class="pun">);</span><span class="pln"> 

     </span><span class="com">//添加闪存数据</span><span class="pln">
     $this</span><span class="pun">-&gt;</span><span class="pln">session</span><span class="pun">-&gt;</span><span class="pln">set_flashdata</span><span class="pun">(</span><span class="str">item</span><span class="pun">,</span><span class="str">item-value</span><span class="pun">);</span><span class="pln"> 

     </span><span class="com">//重定向到主页</span><span class="pln">
     redirect</span><span class="pun">(</span><span class="str">flashdata</span><span class="pun">);</span><span class="pln"> 
  </span><span class="pun">}</span><span class="pln"> 

} ?>

创建一个名为 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;

通过访问以下链接执行以上示例。用您网站的URL替换yoursite.com。

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

访问上述URL后,您将看到如下所示的屏幕。

Flash Data

单击" Click Here"链接,您将看到如下所示的屏幕。在此屏幕上,您将看到闪存数据变量的值。再次刷新页面,您将看到如上所示的屏幕,闪存数据变量将被自动删除。

Add Flash Data

参考链接

www.learnfk.com/codeigniter…