20
私は既存のtrait
の機能を使い、その上に独自の関数を作成したいが、後でそれをクラスに適用する。PHPで特性を拡張する方法はありますか?
正確にLaravel SoftDeletes
の特性を拡張してSaveWithHistory
の機能にしたいので、削除されたレコードとしてレコードの現在の状態のコピーを作成します。私はまたrecord_made_by_user_id
フィールドでそれを拡張したい。
私は既存のtrait
の機能を使い、その上に独自の関数を作成したいが、後でそれをクラスに適用する。PHPで特性を拡張する方法はありますか?
正確にLaravel SoftDeletes
の特性を拡張してSaveWithHistory
の機能にしたいので、削除されたレコードとしてレコードの現在の状態のコピーを作成します。私はまたrecord_made_by_user_id
フィールドでそれを拡張したい。
はいあります。あなたはこのような定義された新しい形質にあります[?PHPのクラスとトレイトを拡張]
trait MySoftDeletes
{
use SoftDeletes {
SoftDeletes::saveWithHistory as parentSaveWithHistory;
}
public function saveWithHistory()
{
$this->parentSaveWithHistory();
//your implementation
}
}
ありがとう、それは完全に動作します。 –
の可能性のある重複(http://stackoverflow.com/questions/10056520/extend-traits-with-classes-in- php) –