Я определил проверку входа в систему в своем методе конструктора контроллера, как в следующем коде:

if($this->session->userdata('log_in')== false){ 
    redirect(); //function for redirect to login page
}

Но я не хочу вызывать эту проверку входа в систему для определенного действия.

(скажем public function viewProduct())

Того же контроллера. Как я могу это сделать?

2
SuUbha 4 Сен 2016 в 19:22

2 ответа

Лучший ответ

Вы можете указать имя вашего метода в конструкторе, если условие, например

$method = $this->router->fetch_method();
if($this->session->userdata('log_in')== false && $method !== 'viewProduct'){ 
    redirect(); //function for redirect to login page
}

Теперь он не будет проверяться в методе viewProduct.

2
Rejoanul Alam 4 Сен 2016 в 17:06

Я думаю, что лучший способ - передать метод в контроллере, а не в конструкторе. Конструктор сначала запускается при загрузке контроллера, поэтому обработка через него не является хорошей практикой. Но некоторые хуки могут сработать для вас, но вы действительно должны следовать стандартной практике для будущего кодирования.

0
Mohammad Ashique Ali 4 Сен 2016 в 17:46