Как передать данные об ошибках валидации через redirect ()? - PullRequest
6 голосов
/ 29 октября 2011

У меня есть страница, которая содержит форму, и когда любой пользователь отправляет ее, данные отправляются в контроллер, и контроллер проверяет валидацию, если есть какая-либо ошибка, он перенаправляет пользователя на предыдущую страницу (страницу, которая содержитформа), в противном случае он отправляет данные в модели.

Чтобы перенаправить на предыдущую страницу с контроллера (если есть какая-либо ошибка проверки), у меня есть следующий код

        redirect($this->input->post('redirect'));

Приведенный выше код работает нормально, но проблема возникает после его перенаправленияпользователь на предыдущей странице (страница, которая содержит форму) не отображает ошибки проверки.

Поэтому, пожалуйста, скажите, пожалуйста, как передать информацию об ошибке проверки через этот код "перенаправления", который я разместилвыше и показать сообщение об ошибке проверки на этой странице?

Заранее спасибо:)

Решение:

В моем контроллере:

   $redirect=$this->input->post('redirect'); //  << for this I have- <input name="redirect" type="hidden" value="<?= $this->uri->uri_string() ?>" />         in my view file

   $this->session->set_flashdata('errors', validation_errors());
   redirect($this->input->post('redirect')); 

ВМой файл просмотра:

   <?php

    if ($this->session->flashdata('errors')){ //change!
    echo "<div class='error'>";
    echo $this->session->flashdata('errors');
    echo "</div>";
    }

    ?>

Таким образом, я могу передавать данные об ошибках валидации через перенаправление с контроллера на предыдущую страницу

1 Ответ

11 голосов
/ 29 октября 2011

Вы можете попробовать flashdata из библиотеки сеансов CI. Это делает данные доступными для следующего запроса к серверу.

$this->session->set_flashdata('errors', validation_errors());

redirect($this->input->post('redirect'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...