Крючки в кодеигниторе

Как я могу вызвать хук только для нескольких контроллеров вместо всех контроллеров в CodeIgniter?

Например: я хочу запустить ловушку только для раздела администратора. Как мне этого добиться?

4 голоса | спросил sandeepmca28 22 Maypm14 2014, 15:35:17

2 ответа


0

В хуке, который вы хотите запустить выборочно, вы можете получить доступ к суперобъекту ci, используя $this->ci =& get_instance();. Это действует как указатель, который может использоваться для доступа к маршрутизатору CodeIgniter для определения класса с помощью $class = $this->ci->router->fetch_class();. Затем вы можете проверить, соответствует ли $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 */
ответил Courtney7 22 Maypm14 2014, 22:15:53
0

Вы можете просто сделать это, проверив URL своего приложения в своем хуке:

$hook = false;
if(strpos($_SERVER['REQUEST_URI'],"admin/"))
$hook = true;
if($hook) {
// do some hook stuff
}
ответил motto 12 Maypm15 2015, 13:18:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132