flashdata codeigniter没有显示

时间:2018-01-24 08:55:16

标签: php codeigniter frameworks

我正在关注youtube上的教程,但我遇到了 flashdata 的问题。它没有出现在教程中我跟着它运行良好。这是代码

function create(){

    $this->load->library('session');
    $this->load->module('site_security');
    $this->site_security->_make_sure_is_admin();

    $update_id = $this->uri->segment(3);
    $submit = $this->input->post('submit', TRUE);

    if ($submit == "Submit"){
        //Process the form
        $this->load->library('form_validation');
        $this->form_validation->set_rules('item_title', 'Item Title', 'required|max_length[240]');
        $this->form_validation->set_rules('item_price', 'Item Price', 'required|numeric');
        $this->form_validation->set_rules('was_price', 'Was Price ', 'numeric');
        $this->form_validation->set_rules('item_description', 'Item Description', 'required');

        if ($this->form_validation->run() == TRUE){
            //get the variables
            $data = $this->fetch_data_from_post();

            if (is_numeric($update_id)){
                //update the item details
                $this->_update($update_id, $data);
                $flash_msg      = "The item details were successfully updated.";
                $value          = '<div class="alert alert-success" role="alert">'.$flash_msg.'</div>';
                $this->session->set_flashdata('item', $value);
                redirect('store_items/create/'.$update_id);
            }else{
                //insert a new file
                $this->_insert($data);
                $update_id      = $this->get_max();//get the ID of the new item
                $flash_msg      = "The item was successfully added.";
                $value          = '<div class="alert alert-success" role="alert">'.$flash_msg.'</div>';
                $this->session->set_flashdata('item', $value);
                redirect('store_items/create/'.$update_id);
            }
        }
    }

    if ((is_numeric($update_id)) && ($submit != "Submit")){
        $data = $this->fetch_data_from_db($update_id);
    }else{
        $data = $this->fetch_data_from_post();
    }

    if (!is_numeric($update_id)){
        $data['headline'] = "Add New Item";
    }else{
        $data['headline'] = "Update Item Details";
    }

    $data['update_id']      = $update_id;
    $data['flash']          = $this->session->flashdata('item');
    $data['view_module']    = "store_items";
    $data['view_file']      = "create";
    $this->load->module('templates');
    $this->templates->admin($data);
}

在视图中,我只是回显$ flash。任何帮助都将非常感激。

3 个答案:

答案 0 :(得分:0)

不需要传递 $ data ['flash'] 变量。

您可以直接从视图中调用变量。例如echo $this->session->flashdata('item')

答案 1 :(得分:0)

您可以在视图页

中使用此代码
$this->session->flashdata('item');

答案 2 :(得分:0)

我终于得到了答案。这是我目前的CI版本的问题。所以我刚刚升级到最新版本,它运行正常。或者实际上我仍然可以使用我当前的CI版本,但我需要降级我的PHP版本。就这样。顺便说一句,非常感谢那些已经试图在这里帮助我的人。