2014-05-22 3 views
4

CodeIgniter의 모든 컨트롤러 대신 몇 개의 컨트롤러에만 후크를 호출하려면 어떻게해야합니까?Codeigniter의 후크

예 : admin 섹션에 대해서만 후크를 실행하고 싶습니다. 이것을 어떻게 할 수 있습니까?

+0

당신 만의 코드를 실행 후크에 컨트롤러 이름을 얻기 위해 시도 할 수 있습니다 그것이'admin' 일 때. http://ellislab.com/forums/viewthread/62981/#778802 –

답변

4

선택적으로 실행하려는 후크에서 $this->ci =& get_instance();을 사용하여 ci superobject에 액세스 할 수 있습니다. 이것은 $class = $this->ci->router->fetch_class();을 사용하여 클래스를 결정하기 위해 CodeIgniter 라우터에 액세스하는 데 사용할 수있는 포인터의 역할을합니다. 그런 다음 $class이 특정 값과 일치하는지 확인할 수 있습니다. 이것은 당신에게 줄 것이다 :

<?php class Post_controller_constructor { 
    var $ci; 

    function __construct() { 

    } 

    function index() 
    { 
     $this->ci =& get_instance(); 
     $class = $this->ci->router->fetch_class(); 
     if($class === 'admin') { 
      // Hook procedures 
     } 
    } 
} 

/* End of file post_controller_constructor.php */ 
/* Location: ./application/hooks/post_controller_constructor.php */ 
1

당신은 당신의 후크에서 응용 프로그램의 URL을 확인하여 그것을 간단하게 할 수 있습니다

$hook = false; 
if(strpos($_SERVER['REQUEST_URI'],"admin/")) 
$hook = true; 
if($hook) { 
// do some hook stuff 
}