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 fixes an error that occurring when the
Laravel\Scout\Jobs\MakeSearchable
job is queued for a conference. These jobs are failing with aMaxAttemptsExceededException
being thrown. These jobs are inserted in thefailed_jobs
table with the correct conference ID but the underlying query is recorded in Bugsnag as follows:This Scout issue led me to the
Laravel\Scout\Searchable::queryScoutModelsByIds
method, which determine's the model's key via theModel::getKeyType
method. When the key type isint
, which is the Eloquent default, the query is built withwhereIntegerInRaw
, which cast's the key as anint
.Since the
Conference
model uses a UUID primary key, thequeryScoutModelsByIds
method was casting the UUID value as an int, which resulted in the SQL query above.Adding
protected $keyType = 'string';
to theApp\Models\UuidBase
class results in thequeryScoutModelsByIds
method using awhereIn
query instead of thewhereIntegerInRaw
, which fixes this issue.This fix is tested by using
collection
as theSCOUT_DRIVER
for PHPUnit since thedatabase
driver doesn't call thequeryScoutModelsByIds
method.