Dans Laravel 5.1 existe-t-il un bon moyen de vérifier si un objet modèle éloquent a été supprimé en douceur? Je ne parle pas de sélectionner des données mais une fois que j'ai l'objet, par exemple Thing::withTrashed()->find($id)
Jusqu'à présent, la seule façon dont je peux voir est
if ($thing->deleted_at !== null) { ... }
Je ne vois aucune méthode pertinente dans l'API qui permettrait par exemple
if ($thing->isDeleted()) { ... }
Je viens de réaliser que je cherchais dans la mauvaise API. La classe Model n'a pas cela, mais le trait SoftDelete que mes modèles utilisent a une méthode trashed()
.
Je peux donc écrire
if ($thing->trashed()) { ... }
Dans laravel6, vous pouvez utiliser les éléments suivants.
Pour vérifier que le modèle Eloquent utilise la suppression logicielle:
if( method_exists($thing, 'trashed') ) {
// do something
}
Pour vérifier que le modèle Eloquent utilise la suppression logicielle dans la ressource (lors de l'utilisation de la ressource pour répondre):
if( method_exists($this->resource, 'trashed') ) {
// do something
}
Et enfin pour vérifier si le modèle est jeté:
if ($thing->trashed()) {
// do something
}
J'espère que cela vous sera utile!