2017-01-25 9 views
0

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

class Customer_Dashboard extends CI_Controller { 
    public function __construct() { 
     $method= $this->router->fetch_method(); 
     if ($this->session->userdata("cus_sel_comp")) { 

     }else{ 
      if($method !="index"){ 
       redirect(base_url()."customer_dashboard");exit; 
      } 
     } 
    } 
    public function index() { 
     // Here do some operations and let the user to select company and update the "cus_sel_comp" session variable. After set that session user can access the other controller functions. 
    } 
    public function other_function1() { 

    } 
    public function other_function2() { 

    } 
} 

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

ответ

0

Вместо перенаправления функции индекса возврата. См. Код ниже

if($method !="index"){ 
       return $this->index(); 
} 
0

Вы вызываете ту же функцию и перенаправляете ее на тот же метод.

class Customer_Dashboard extends CI_Controller { 
     public function __construct() { 
      $method= $this->router->fetch_method(); 
      if ($this->session->userdata("cus_sel_comp")) { 

      }else{ 
       if($method !="index"){ 
        redirect(base_url()."Customer_Dashboard/index"); // Redirect it to index if other method is invoked. 
       } 
      } 
     } 
     public function index() { 
      // Here do some operations and let the user to select company and update the "cus_sel_comp" session variable. After set that session user can access the other controller functions. 
     } 
     public function other_function1() { 

     } 
     public function other_function2() { 

     } 
    } 

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

+0

Можете ли вы дать мне решение для этого? –

+0

@GayanFernando, я ответил на ваш вопрос относительно перенаправления ?. Вы запрашиваете решение для этого или 'base_url'? –

+0

Мне нужно перенаправить на функцию индекса контроллера customer_dashboard. Не для основного контроллера сайта. Можно ли это сделать? Или еще есть способ сделать это иначе, чем использовать перенаправление? –