2015-12-10 41 views
0

我用笨鉤,我已經喜歡定義如下:觸發掛鉤的方法時調用的方法內部

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

每當用戶瀏覽網址它獲取調用。每個方法執行後,它會觸發上面的鉤子。這是工作正常我想要的方式。

比方說,我正在瀏覽像:https://localhost/dashboard/index這將運行dashboard控制器index方法,然後觸發我的鉤子。

現在的問題是我打電話給另一個方法list儀表板類index方法。所以當索引方法調用list方法並且它被執行時,我也想觸發這個鉤子,這現在不會發生。

任何人都可以幫助我!

+0

如果從指數的方法調用這個 - $>列表()它不會觸發鉤作爲其正常的階級基礎函數調用,你可以做一兩件事,而不是調用 $這個 - >列表() ,你可以稱之爲重定向(「dashboard/list」); 另一種解決方案是你可以像這樣手動調用它 - > [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.. 


}`