Flashdata(Flashdata)
在构建Web应用程序时,我们只需要存储一些数据,之后我们要删除该数据。 例如,显示一些错误消息或信息消息。 在PHP中,我们必须手动完成,但CodeIgniter使我们的工作变得简单。 在CodeIgniter中,flashdata仅在下一个请求之前可用,并且会自动删除。
添加Flashdata
我们可以简单地存储flashdata,如下所示。
$this->session->mark_as_flash('item');
mark_as_flash()函数用于此目的,它只接受要存储的值的一个参数。 我们还可以传递一个数组来存储多个值。
也可以使用set_flashdata()函数,它接受两个参数:name和value,如下所示。 我们也可以传递一个数组。
$this->session->set_flashdata('item','value');
检索Flashdata
可以使用flashdata()函数检索Flashdata,该函数接受要获取的项的一个参数,如下所示。 flashdata()函数确保您只获取闪存数据而不是任何其他数据。
$this->session->flashdata('item');
如果您没有传递任何参数,那么您可以获得具有相同功能的数组。
例子 (Example)
创建一个名为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
访问上述URL后,您将看到如下所示的屏幕。
点击“ Click Here ”链接,您将看到如下所示的屏幕。 在此屏幕中,您将看到闪存数据变量的值。 再次刷新页面,您将看到如上所示的屏幕,闪存数据变量将自动删除。