2012-05-27 27 views
0

我正在使用MY_Controller來處理登錄功能,問題是我不知道如何阻止MY_Controller在發生AJAX請求時被擴展。看起來redirect()會停止帶有非AJAX請求的子類,是否可以停止子類爲對於AJAX請求執行Codeigniter類的執行行爲

function __construct() { 
    parent::__construct(); 

    if(!$this->input->is_ajax_request()) { 

     if(!$this->session->userdata('userid')) { 
      //Render public menu in view 
      $this->load->view('header_public_view'); 
      if($this->login_required()) { 
       //Possibly change to render authentication view rather than redirect 
       $this->session->set_userdata('destination', $this->input->server('REQUEST_URI')); 
       redirect('authentication/login'); 
      } 
     } 
     else { 
      $this->load->model('user_model'); 
      $data['user'] = $this->user_model->get_user($this->session->userdata('userid')); 
      $this->load->view('header_user_view', $data); 
     } 

    } 
    else { 

     if(!this->session->userdata('userid') && $this->login_required) { 

      //send response telling client to redirect 

     } 

    } 
} 
+0

我們需要更多的信息,你是什麼意思停止子類?阻止它做什麼? – Hailwood

+0

@Hailwood更新;) –

回答

0

只要把你所有的AJAX功能集成到一個單獨的控制器不exended MY_Controller

function Ajax_controller extends CI_Controller 
{ 
    //code 
}