web-dev-qa-db-ja.com

PHPで特性を拡張する方法はありますか?

既存のtraitの機能を使用して、その上に独自のtraitを作成し、後でクラスに適用したいだけです。

正確にLaravel SoftDeletes特性を拡張してSaveWithHistoryfunctionを作成したいので、レコードの現在の状態のコピーを削除済みレコードとして作成します。また、record_made_by_user_idfieldで拡張したいです。

45

はいあります。次のように新しい特性を定義する必要があります。

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

    public function saveWithHistory() {
        $this->parentSaveWithHistory();

        //your implementation
    }
}
98