[5.8] Add deleted_at date cast for soft deleting models #26985
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR utilises a trait initializer to automatically add
deleted_at
to the$dates
array of any model that uses theSoftDeletes
trait. Previously this has to be added manually to each model - unlike thecreated_at
andupdated_at
that is handled "under the hood".In essence...
Notes:
$casts
entry fordeleted_at
will take precedence (test exists).$dates
entry fordeleted_at
will have no impact as the array is not a key => value pair, but a value array. Also whengetDates
is called it already runsarray_unique
to remove any duplicate entries (test exists).getDeletedAtAttribute
will take precedence (test exists).Breaking:
This will be a breaking change if you are not expecting the value of
deleted_at
to be cast, i.e. you never added it to the$dates
array as outlined in the docs. But as mentioned earlier, a mutator will take precedence if for whatever reason you don't want the automatic casting.