2016-10-28 17 views
20

Chcę używać funkcjonalności istniejącego trait i tworzyć na nim moje własne funkcje, tylko po to, aby później zastosować je na zajęciach.Czy istnieje sposób na rozszerzenie cechy w PHP?

Dokładnie chcę rozszerzyć funkcję Laravel SoftDeletes, aby utworzyć funkcję SaveWithHistory, więc utworzy kopię bieżącego stanu rekordu jako usuniętego rekordu. Chcę również rozszerzyć go o pole record_made_by_user_id.

+0

Możliwy duplikat [? Extend Cechy z klas w PHP] (http://stackoverflow.com/questions/10056520/extend-traits-with-classes-in- php) –

Odpowiedz

42

Tak, jest. Trzeba zdefiniowała nową cechę tak:

trait MySoftDeletes 
{ 
    use SoftDeletes { 
     SoftDeletes::saveWithHistory as parentSaveWithHistory; 
    } 

    public function saveWithHistory() 
    { 
     $this->parentSaveWithHistory(); 
     //your implementation 
    } 

} 
+0

Dziękuję, działa idealnie. –

Powiązane problemy