83 votes

Y at-il un moyen d'étendre le trait en PHP?

Je souhaite utiliser les fonctionnalités de trait existantes et créer mon propre trait dessus, pour ensuite l'appliquer ultérieurement à des classes.

Précisément, je souhaite étendre le trait Laravel SoftDeletes pour que SaveWithHistory fonctionne, afin de créer une copie de l'état actuel d'un enregistrement sous la forme d'un enregistrement supprimé. Je souhaite également l'étendre avec le champ record_made_by_user_id .

155voto

Filip Koblański Points 5745

Oui il y a. Il vous suffit de définir un nouveau trait comme ceci:

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

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

        //your implementation
    }
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X