我遇到了一個問題,我似乎無法修復。我正在研究一種CMS類型的東西。其中一項功能是製作圖像幻燈片。CodeIgniter flashdata
在一個控制器中,我檢查是否存在具有某個ID的幻燈片,如果存在,它應該取數據並使用它,否則,設置錯誤消息(CodeIgniter flashdata)並重定向到主頁。
我用這個代碼如下:
if($this->Mslideshow->slideshowExists($showid) === FALSE){
echo 'I\'m getting here';
$this->session->set_flashdata('error',$showid);
redirect('admin/index','refresh');
}else{
echo 'Slideshow exists';
}
而且slideshowExists()
函數的代碼是:
public function slideshowExists($showid)
{
$this->db->where('id',$showid)
->limit(1);
$query = $this->db->get('slideshows');
if($query->num_rows() < 1){
return FALSE;
}
$this->currentquery = $query;
return TRUE;
}
而問題是這樣的,很奇怪居然。如果我回來的結果是FALSE
,一切都按計劃進行。錯誤消息被設置並重定向到'admin/index'。 但是,如果我回來的是真的,那麼事情就會發生。我確實收到了'Slideshow exists'的echo
,但我也收到了錯誤消息。
我試過了一切,刪除了cookies。重置所有會話等。
甚至更奇怪的是,當我試圖把$showid
我用來檢查錯誤信息,突然$showid
是'img'。雖然在其他地方是'1'或'2'...
希望有人可以提供幫助。謝謝!
=====編輯=====
我試圖編輯代碼,並簡化它。現在,我有這樣的代碼在我的控制器:
public function slideshow($showid){
$query = $this->db->where('id',$showid)->get('slideshows');
if($query->num_rows() < 1){
$this->session->set_flashdata('error','Slideshow doesn\'t exist.');
redirect('admin/index','refresh');
}
$data['page'] = 'slideshow';
$data['title'] = 'Slideshows';
$this->scripts->load_scripts(array());
$this->scripts->load_functions(array());
$this->load->view('admin/dashboard_template.php',$data);
}
當我跑這與$showid
,不存在,我被重定向到「管理員/指標」後,收到錯誤消息。當我使用存在的$showid
時,我確實得到錯誤,但沒有重定向,只是其餘的代碼。