这是我的控制器代码
function index() {
echo $this->session->flashdata('message');
$this->load->view('categoryView');
}
function delete() {
$products = $this->item_model->get_category_id($category_id);
if (count($products)) {
$message = 'Category Name is used by the product. Please change them to another category!';
}
else {
$category_id = $this->product_category_model->delete($category_id);
$message = ($category_id) ? 'Category Deleted Successfully' : 'Failed to Delete Category';
}
$this->session->set_flashdata('message', $message);
redirect('category', 'refresh');
}
调用delete函数后,必须设置flashdata并在同一个控制器的index()函数中检索该值,但我不能。
我也试过$ this-> session-> keep_flashdata('message');在重定向到索引功能之前。但仍然没有得到索引函数的任何价值。
同样改变了$ config ['sess_expire_on_close'] = FALSE; to $ config ['sess_expire_on_close'] = TRUE;仍然没有得到结果。
我浪费了更多时间(将近半天)。请任何人帮助检索codeigniter中的闪存数据。
答案 0 :(得分:0)
有几种可能性:
1-检查您的浏览器cookie。看看它是否允许使用cookie或是否有其他扩展进行干预。
2- Refresh
可能不会向浏览器发送新请求(这意味着新的URL)。试试另一个控制器是否有任何改变
3-硬编码set_flashdata()
,其硬编码值而不是变量。 set_flashdata("message", "Thank you");
答案 1 :(得分:0)
在编码器中,您无法在控制器中回显任何内容。
您必须在视图文件中设置$this->session->flashdata('message');
而不是在控制器
将$this->session->flashdata('message');
放在要显示Flash消息的“categoryView”文件中,再试一次。
答案 2 :(得分:0)
你可以尝试:
function set_flashdata_notification($notify_type, $msg, $error_code = null)
{
$ci =& get_instance();
$flashdata_data = set_notification_array($notify_type, $msg, $error_code);
$ci->session->set_flashdata($flashdata_data);
}
function delete() {
$products = $this->item_model->get_category_id($category_id);
if (count($products)) {
set_flashdata_notification('Category Name is used by the product.','Please change them to another category!');
redirect('path_to_view/view','refresh');
}