首先:我正在尝试开发一个类或几个方法(或只是一种方法),以在 codeigniter 中使用,这是通用的、简单的和灵活的,我需要一种向它传递消息、显示、项目中的任何地方,然后将其擦除。(如果是ajax,那就太棒了)
回到我没有使用codeigniter的时候,我曾经有一个类,在会话中插入消息,一个非常简单的类,所以我可以显示成功消息等。这是我想要带来的类codeigniter,但我几乎可以肯定 codeigniter 有类似的解决方案,但我不知道要搜索什么。我也希望我有比这个更好的解决方案,因为我试图适应 codeigniter 处理会话的方式,但没有奏效
<?php
class Basic
{
protected $erros;
function __construct()
{
session_start();
if(!empty($_SESSION['erro'])) // Session não vazia (tem uma array dentro dela ent?o)
{
$this->erros = $_SESSION['erro'];
}else // Session VAZIA (tem que COLOCAR uma array dentro dela)
{
$this->erros = array();
$_SESSION['erro'] = $this->erros;
}
}
private function destruct()
{
unset($_SESSION['erro']);
unset($this->erros);
$this->erros = NULL;
}
private function add($string)
{
$this->erros = $_SESSION['erro']; // pega mais um
$this->erros[] = $string; // adiciona no array
$_SESSION['erro'] = $this->erros; // coloca de volta na session
}
public function add_error($data)
{
if(empty($data))return true;
if(is_array($data))
{
foreach ($data as $value)
{
$this->add($value);
}
}
else
{
$this->add($data);
}
}
public function return_errors()
{
$erros = $this->erros;
$this->destruct();
return $erros;
}
public function check_ok()
{
return ($this->erros == NULL)?true:false;
}
public function show_errors()
{
$erros = $this->erros;
print_r($erros);
}
}
?>
这是我将其转换为使用 codeigniter 会话的微不足道的尝试
<?php
function __construct()
{
if(!empty($this->session->userdata('my_msgs'))) // Session n?o vazia (tem uma array dentro dela ent?o)
{
$this->msg = $this->session->userdata('my_msgs');
}else // Session VAZIA (tem que COLOCAR uma array dentro dela)
{
$this->msg = array();
$this->session->set_userdata('my_msgs', $this->msg);
}
}
function destruct()
{
$this->session->unset_userdata('my_msgs');
$this->msg = NULL;
unset($this->msg);
}
function add($string)
{
$this->msg = $this->session->userdata('my_msgs'); // pega mais um
$this->msg[] = $string; // adiciona no array
$this->session->set_userdata('my_msgs', $this->msg); // coloca de volta na session
}
function add_msg($data)
{
if(empty($data))return true;
if(is_array($data))
{
foreach ($data as $value)
{
$this->add($value);
}
}
else
{
$this->add($data);
}
}
function return_msg($keep = FALSE)
{
$msg = $this->msg;
if($keep == FALSE)
{
$this->destruct();
}
return $msg;
}
function check_ok()
{
return ($this->msg == NULL)?true:false;
}
function show_msgs()
{
$msg = $this->msg;
print_r($msg);
}
抱歉英语不好,不是母语人士