#php #codeigniter
#php #codeigniter
Вопрос:
Я использую флэш-данные для сообщений об успехах / ошибках.
У меня возникла проблема: после установки flashdata — все данные сеанса удаляются, но только в нескольких контроллерах, в других контроллерах они работают правильно.
Cotroller 1: (функция, когда она работает нормально)
public function vymazat($id)
{
if(!is_numeric($id)) redirect();
$this->admin_model->delete_coupon($id);
$this->session->set_flashdata('success', 'Kupón bol úspešne vymazaný');
redirect('admin/kupony/zobrazit');
}
Контроллер 2: (функция, в которой она не работает)
public function vymazat($id)
{
if(!is_numeric($id)) redirect();
$this->admin_model->delete_order($id);
$this->session->set_flashdata('success', 'Kupón bol pridaný');
redirect('admin/objednavky/zobrazit');
}
Спасибо за любую помощь
Комментарии:
1. прокомментируйте перенаправление в обоих случаях и поместите это
print_r($this->session->userdata());
и опубликуйте результаты.2. Проблема решена, проблема была в кодировке документа. Мне пришлось использовать UTF8
Ответ №1:
Из документации CodeIgniter:
CodeIgniter поддерживает «flashdata», или данные сеанса, которые будут доступны только для следующего запроса сервера, а затем автоматически удаляются.
Возможно, ваше перенаправление может потребовать более одного запроса, что приведет к очистке вашего flashdata
.
Вы можете использовать следующее:
//In your Redirected to, controller constructor
$this->session->keep_flashdata('message');
И посмотрите flashdata
, отображается ли, если да, то мое приведенное выше утверждение верно.