2015-12-26 35 views
3

如何在所有查詢中更改模型的輸出之一?cakephp - 觸發 - 查詢執行後

這意味着查詢將在此模型上運行,然後轉到特定功能。

例如,在用戶模式下,如何刪除密碼字段爲所有查詢

感謝

回答

6

以下內容添加到你的模型:

public function afterFind($results, $primary = false){ 
    foreach ($results as $key => $val) { 
     unset($results[$key][$this->alias]['password']); 
    } 

    return $results; 
} 

這也應該工作:

public function afterFind($results, $primary = false){ 
    return Hash::remove($results, '{n}.'.$this->alias.'.password'); 
} 
+0

謝謝,工作每2功能。 – Farhad

+0

有沒有辦法會有例外情況? – Farhad

+0

沒有更多。過去的情況是,當在主模型上調用'find()'時,''result'可以以不同的方式進行構造,而在關聯的模型中則是遞歸調用。 [此行爲在2.6.0中修復](https://github.com/cakephp/cakephp/pull/4223)。確保你在CakePHP 2.6或更高版本上。 –