Как я могу определить хук на указанном контроллере? - PullRequest
0 голосов
/ 25 мая 2018

Здесь я пытаюсь определить хуки только на одном контроллере.как я могу их настроить?

Я определил крючки как $hook['pre_controller']=arra('....').но он показывает на всем контроллере, и я хочу определить ловушку только на домашнем контроллере.предложи мне пожалуйста.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вы можете попробовать это.работает нормально

config / hooks.php

$hook['test'] = array(   
     'class' => 'Exm',   
     'function' => 'tut',   
     'filename' => 'exm.php',   
     'filepath' => 'hooks',   
); 

application / hooks / exm.php

class Exm extends CI_Hooks {   
    public function tut()   
    {   
     echo "Welcome to Hooks File";   
    }
}

application / controller / example.php

defined('BASEPATH') OR exit('No direct script access allowed');   

class Example extends CI_Controller {   
public function index()   
  {   
    echo "Hooks Example";   
    $this->hooks->call_hook('test');
  }   
}
0 голосов
/ 25 мая 2018

Скажем, например, имя вашего контроллера YourController, первый шаг - определить ваш хук в файле hooks.php,

// hooks.php
$hook['pre_controller'][] = array(
    'class'    => 'MyHook',
    'function' => 'HookMethod',
    'filename' => 'MyHook.php',
    'filepath' => 'hooks',
    'params'   => array()
);

Определите ваш MyHook.php, как показано ниже в папке hooks.

<?php
// MyHook.php    
class MyHook
{
    private $CI;

    public function __construct()
    {
        $this->CI = & get_instance();
    }    

    public function HookMethod()
    {
        // check here loaded controller is desired one
        if (is_subclass_of($this->CI, 'YourController')) {
           // write your desired code here.
        }
    }    
}

Я не тестировал код, но это, безусловно, поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...