如何通过redirect()传递验证错误数据?

bla*_*elt 6 codeigniter codeigniter-2

我有一个包含表单的页面,当任何用户提交表单时,数据会转到控制器,控制器会检查验证,如果有任何错误,它会将用户重定向到上一页(包含表单的页面),否则它会将数据发送给模型.

要从控制器重定向到上一页(如果有任何验证错误),我有以下代码

        redirect($this->input->post('redirect'));
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但问题是它将用户重定向到上一页(包含表单的页面)后,它没有显示验证错误.

那么请您告诉我如何通过上面发布的"重定向"代码传递验证错误信息并在该页面上显示验证错误消息?

提前致谢 :)

解:

在我的控制器中:

   $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')); 
Run Code Online (Sandbox Code Playgroud)

在我的视图文件中:

   <?php

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

    ?>
Run Code Online (Sandbox Code Playgroud)

因此,我可以通过从控制器重定向到上一页来传递验证错误数据

小智 11

您可以从CI的会话库中尝试flashdata.它使数据可用于下一个服务器请求.

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

redirect($this->input->post('redirect'));
Run Code Online (Sandbox Code Playgroud)