Laravel SoftDelete : éviter le problème de contrainte unique

DEV - 06/10
Cet article provient de...

Cet article provient de https://medium.com/@hafiqiqmal93/laravel-softdelete-avoiding-the-unique-constraint-problem-45381d9745a0

Si vous utilisez Laravel depuis un certain temps, en particulier lorsque les projets impliquent l'intégrité des données, vous avez probablement déjà rencontré la fonctionnalité SoftDelete. Plutôt utile car vous pouvez « supprimer » des enregistrements sans vraiment les retirer de la base de données. Ce que fait Laravel, c'est simplement ajouter un horodatage delete_at afin qu'il le marque comme supprimé, mais reste dans le système. C'est bien beau de conserver des données historiques, mais cela introduit un problème potentiellement délicat : qu'arrive-t-il aux contraintes uniques lorsque vous restaurez des enregistrements supprimés de manière logicielle ?

Cela devient un problème lorsque vous souhaitez restaurer un enregistrement qui possède déjà, par exemple, une adresse e-mail ou un nom d'utilisateur unique dans la base de données. Laravel générera simplement une erreur et arrêtera la procédure. Heureusement, il existe un moyen simple d’éviter ce problème de manière très propre.

Passons en revue une solution utilisant un trait qui vous aidera à contourner les contraintes uniques lors de l'utilisation de SoftDelete dans Laravel.

Comprendre le problème

Prenons un exemple basique. Imaginez que vous...
[Courte citation de 8% de l'article original]

Loading...