2013-05-25 61 views
0

在Laravel 4有創建,創建,更新,更新等模型事件。Laravel 4模型活動。在模型上設置查詢結果後,可以讀取,讀取類型事件?

有沒有人找到一種方式來做一些類似於閱讀,閱讀事件沒有黑客/擴展QueryBuilder類?

即使它不是每個說的事件,我想找到一種方法來實現這之前/之中/之後(其中任何一個)查詢結果已注入模型屬性。

到目前爲止,我只是重寫了我的核心/基礎模型類中的getAttributeFromArray方法,但它顯然在您嘗試抓取模型中的屬性/屬性時運行邏輯(可能最終成爲代價高昂的操作)。

謝謝!

回答

5

我能夠在我的核心/基礎模型類中添加和壓倒一切的1種方法來實現這一(延伸雄辯\型號)

public static function read($callback) 
{ 
    static::registerModelEvent('read', $callback); 
} 

public function setRawAttributes(array $attributes, $sync = false) 
{ 

    parent::setRawAttributes($attributes,$sync); 

    $this->fireModelEvent('read'); 
} 

這樣,我讀的事件纔會觸發一次當結果被注入進入模型。而不是讓模型上的每個__get調用都運行該事件。