Я столкнулся с проблемой, которую просто не могу исправить. Я работаю над чем-то вроде CMS. И одна из функций - создание слайд-шоу изображений.
В одном контроллере я проверяю, существует ли слайд-шоу с определенным идентификатором, и если оно существует, оно должно взять данные и работать с ними, в противном случае установить сообщение об ошибке (флэш-данные CodeIgniter) и перенаправить на домашнюю страницу.
Код, который я использую для этого, следующий:
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».
Но если то, что я получаю, - ИСТИНА, тогда случается странная вещь. Я получаю echo
с «Слайд-шоу существует», но я также получаю сообщение об ошибке.
Я все перепробовал, удалил куки. Сброс всех сессий и т. Д.
И еще более странно то, что когда я пытался вставить $showid
, который я использую для проверки сообщения об ошибке, внезапно $showid
становится 'img'. В то время как везде есть «1» или «2» ...
Надеюсь, кто-нибудь может помочь. Спасибо!
===== EDIT =====
Я попытался отредактировать код и упростить его. Прямо сейчас у меня есть этот код в моем контроллере:
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
, которого не существует, я получаю сообщение об ошибке после перенаправления в 'admin / index'. Когда я использую $showid
, который существует, я получаю сообщение об ошибке, но не перенаправления, а только остальную часть кода.