CodeIgniter - Flashdata
Ao construir o aplicativo da web, precisamos armazenar alguns dados apenas uma vez e, depois disso, queremos remover esses dados. Por exemplo, para exibir alguma mensagem de erro ou mensagem informativa. Em PHP, temos que fazer isso manualmente, mas o CodeIgniter simplificou esse trabalho para nós. No CodeIgniter, flashdata só estará disponível até a próxima solicitação e será excluído automaticamente.
Adicionar Flashdata
Podemos simplesmente armazenar flashdata conforme mostrado abaixo.
$this->session->mark_as_flash('item');
mark_as_flash()A função é usada para este propósito, que leva apenas um argumento do valor a ser armazenado. Também podemos passar um array para armazenar vários valores.
set_flashdata()função também pode ser usada, que leva dois argumentos, nome e valor, conforme mostrado abaixo. Também podemos passar um array.
$this->session->set_flashdata('item','value');
Recuperar Flashdata
Flashdata pode ser recuperado usando a função flashdata () que pega um argumento do item a ser buscado conforme mostrado abaixo. A função flashdata () garante que você está obtendo apenas dados flash e não quaisquer outros dados.
$this->session->flashdata('item');
Se você não passar nenhum argumento, poderá obter um array com a mesma função.
Exemplo
Crie uma classe chamada FlashData_Controller.php e salve em 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');
}
}
?>
Crie um arquivo de visualização chamado flashdata_home.php e salve em 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>
Faça as alterações no routes.php arquivo em application/config/routes.php e adicione a seguinte linha no final do arquivo.
$route['flashdata'] = 'FlashData_Controller';
$route['flashdata/add'] = 'FlashData_Controller/add';
Execute o exemplo acima visitando o seguinte link. Substitua o yoursite.com pelo URL do seu site.
http://yoursite.com/index.php/flashdata
Após visitar o URL acima, você verá uma tela conforme mostrado abaixo.
Clique em "Click Here”Link e você verá uma tela conforme mostrado abaixo. Aqui, nesta tela, você verá um valor da variável de dados flash. Atualize a página novamente e você verá uma tela como a acima e a variável de dados flash será removida automaticamente.