2015-12-10 3 views
0

Я использую CodeIgniter крючок, который я определил, как показано ниже:спускового крючка, когда метод вызывается внутренне

$hook['post_controller'][] = 
    array(
     'class' => 'notify', 
     'function' => 'sendEmail', 
     'filename' => 'notify.php', 
     'filepath' => 'controllers' 
    ); 

И это вызывалось каждый раз, когда пользователь просматривать URL. После того, как каждый метод выполнен, он запускает вышеупомянутый крючок. Это работает так, как я хочу.

Предположим, что я просматриваю что-то вроде: https://localhost/dashboard/index, который будет запускать dashboard контроллер index, а затем вызвать мой крюк.

Теперь проблема в том, что я вызываю другой метод list класса приборной панели от index метода. Поэтому, когда метод индекса вызвал метод list, и он был выполнен, я тоже хочу запустить hook, чего не происходит прямо сейчас.

Помогите мне в этом!

+0

если вы звоните $ this-> список() из индексного метода его не будет вызывать крюк в качестве нормального класса базового вызова функции, Вы можете сделать одну вещь вместо вызова $ this-> список() , вы можете вызвать перенаправление («панель/список»); Еще одно решение, так вы можете назвать это вручную -> [link] (http://stackoverflow.com/questions/21236612/calling-invoking-a-hook-manually-in-codeigniter) –

ответ

0

вы можете использовать флаг, чтобы решить ваш крюк или нет. например: в вашем методе список на контроллере приборной панели:

$this->process_email = FALSE; 

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

function sendEmail(){ 
    $CI =& get_instance(); 
    if (property_exists($CI, "process_email") && $CI->process_email === FALSE) 
    { 
     return; 
    } 

    //`do your stuff here to send email.. 


}` 

 Смежные вопросы

  • Нет связанных вопросов^_^