CodeIgniter教程:闪存数据
在构建web应用程序时,我们只需要存储一些数据一次,然后我们想删除这些数据。例如,显示一些错误消息或信息消息。在PHP中,我们必须手动完成,但是CodeIgniter已经让这项工作变得简单了。在CodeIgniter中,flashdata将仅在下一个请求之前可用,并且将被自动删除。
添加闪存数据
我们可以简单地存储闪存数据,如下所示。
$this->session->mark_as_flash('item');
mark_as_flash() 函数用于此目的,它只接受要存储的值的一个参数。我们还可以传递一个数组来存储多个值。
set_flashdata() 函数也可以使用,它接受两个参数,名称和值,如下所示。我们也可以传递一个数组。
$this->session->set_flashdata('item','value');
检索闪存数据
可以使用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
访问上述网址后,您将看到如下所示的内容。
点击“Click Here”链接,您将看到如下所示的内容,你会看到一个flash数据变量的值。再次刷新页面,你会看到一个类似上面的内容,flash数据变量将被自动删除。