CodeIgniter阻止在URL中显示控制器/方法

时间:2012-11-26 06:36:32

标签: php codeigniter url-rewriting

我正在使用CodeIgniter,我的路由设置如下:

$route["(:num)"] ="login/login_by_id/$1";

这基本上意味着当URL看起来像这样:

http://mydomain.com/12345

这将有效地将值12345传递给login_by_id控制器的login方法。当我直接输入网址时,一切正常。我遇到问题的地方是当我尝试加载视图时。这些是调用视图的行:

$data['content'] = 'login_view';
$data['title']   = 'Login';
$data['error_msg'] = 'Invalid password.  Please try again.';
$this->load->view('login_template', $data); 

我的问题是,不是将用户返回到此处:

http://mydomain.com/12345

浏览器会将用户定向到此网址:

http://mydomain.com/login/login_by_id

如何更改代码以便将用户返回到之前的相同网址?我不想在URL地址中显示控制器/方法。

感谢。

1 个答案:

答案 0 :(得分:0)

在控制器中的函数(在按下提交按钮后调用的函数)中。

public function post_login()

  {

      $error_in_validation=set_form_validation($this->config->item('login_form'));

        if($error_in_validation){
            show_form_validation_error('controller_name/login');
        }
        else
        {
            $email=$this->input->post('email');
            $passwd=$this->input->post('passwd');
            $ret=$this->admin_model->user_login($email, $passwd);

            if($ret == NULL){

                $model=array();
                $model['error_msg']=$this->config->item('login_form_error_code_1');;
                $this->load->view('login',$model);              
            }
            else{
                redirect("home");
            }

        }

    }