我有延伸鋒模型審計類...如何觀察在Laravel 5.1中實現接口的所有模型?
class Audit extends Model {
}
我有一個可審計的接口...
interface IAuditiable {
public function audit();
}
我有一臺符合接口並限定的性狀模型和審計之間的關係...
trait Auditable {
public function audit(){
return $this->hasMany('Audit');
}
}
我有一個模型,擴展了雄辯模型我mplements的界面和使用特點...
class Post extends Model implements IAuditable {
use Auditable;
}
我想在裏面添加功能create
或update
每當創建或更新的Post模型進行了審計。我已經通過在Post上註冊觀察員來解決這個問題,該觀察員將捕獲「已保存」事件並添加新的審計。
但是,最終會出現許多使用IAuditable
和使用Auditable
特徵的模型。
所以,我的問題是,是否有可能實現一個觀察者,它將爲任何實現Laravel 5.1接口的模型提取所有「已保存」事件?
你有沒有考慮過像https://github.com/VentureCraft/revisionable? – user2094178
您可以製作自己的模型合約,爲已保存的功能實現附加功能,並讓您的可審計模型擴展AuditableModel –
是的,@Brynn似乎是目前唯一的解決方案。這就是Venture Craft的可修改解決方案。我並不熱衷於此,因爲1)我不希望增加額外繼承的複雜性2)未來可能會有其他更新需要擴展保存的方法。 – jonadams51