You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When force deleting an Eloquent model that uses both the SoftDeletes and Searchable traits, the RemoveFromSearch job is dispatched twice. This duplication occurs because both the deleted and forceDeleted events trigger the unsearchable() method, leading to the job being queued twice.
My scout.soft_delete is set to false , so this condition is false for me, therefore, triggering the first $model->unsearchable();.
Since both the deleted and forceDeleted are called when force deleting a model, the $model->unsearchable(); is executed twice.
Steps To Reproduce
Add both SoftDeletes and Searchable traits to the model.
Make sure the scout.soft_delete is set to false in the scout configuration.
Trigger a force delete operation over the model and check the jobs executed.
Possible Solution
Maybe this would work in the deleted function within the ModelObserver:
if ($this->usingSoftDeletes && $this->usesSoftDelete($model)) {
$this->whileForcingUpdate(function() use ($model) {
$this->saved($model);
});
} elseif (! $model->isForceDeleting()) { // if we're force deleting, we let the "forceDeleted" function execute the unsearchable
$model->unsearchable();
}
The text was updated successfully, but these errors were encountered:
We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as one separate commit on the main/master branch and share the repository here?
Scout Version
10.11.7
Scout Driver
Meilisearch
Laravel Version
11.33.2
PHP Version
8.3
Database Driver & Version
No response
SDK Version
No response
Meilisearch CLI Version
No response
Description
When force deleting an Eloquent model that uses both the
SoftDeletes
andSearchable
traits, theRemoveFromSearch
job is dispatched twice. This duplication occurs because both thedeleted
andforceDeleted
events trigger theunsearchable()
method, leading to the job being queued twice.My
scout.soft_delete
is set tofalse
, so this condition is false for me, therefore, triggering the first$model->unsearchable();
.Since both the deleted and forceDeleted are called when force deleting a model, the
$model->unsearchable();
is executed twice.Steps To Reproduce
scout.soft_delete
is set to false in the scout configuration.Possible Solution
Maybe this would work in the
deleted
function within theModelObserver
:The text was updated successfully, but these errors were encountered: