При создании веб-приложения нам нужно хранить некоторые данные только один раз, а после этого мы хотим удалить эти данные. Например, для отображения некоторого сообщения об ошибке или информационного сообщения. В PHP мы должны делать это вручную, но CodeIgniter упростил эту задачу для нас. В CodeIgniter flashdata будет доступна только до следующего запроса и будет автоматически удалена.
Добавить Flashdata
Мы можем просто хранить флэш-данные, как показано ниже.
$this->session->mark_as_flash('item');
-
Для этого используется функция mark_as_flash () , которая принимает только один аргумент значения, подлежащего сохранению. Мы также можем передать массив для хранения нескольких значений.
-
Также можно использовать функцию set_flashdata () , которая принимает два аргумента, имя и значение, как показано ниже. Мы также можем передать массив.
Для этого используется функция 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>
Внесите изменения в файл rout.php в application / config / rout.php и добавьте следующую строку в конец файла.
$route['flashdata'] = 'FlashData_Controller'; $route['flashdata/add'] = 'FlashData_Controller/add';
Выполните приведенный выше пример, перейдя по следующей ссылке. Замените yoursite.com на URL вашего сайта.
http://yoursite.com/index.php/flashdata
После посещения вышеуказанного URL вы увидите экран, показанный ниже.
Нажмите на ссылку « Нажмите здесь », и вы увидите экран, как показано ниже. Здесь, на этом экране вы увидите значение переменной данных флэш-памяти. Обновите страницу еще раз, и вы увидите экран, подобный приведенному выше, и переменная flash-данных будет автоматически удалена.