Open bredmor opened 15 hours ago
Thinking on this, I wonder if it might be undesired functionality for the Collection/Array map()
function to do this in general, or if it's expected and understood.
If the latter, I would be happy to write a PR to fix this issue for scout.
I'll investigate as soon as possible and report back
Scout Version
10.11.3
Scout Driver
Typesense
Laravel Version
10.48.22
PHP Version
8.2.23
Database Driver & Version
No response
SDK Version
No response
Meilisearch CLI Version
No response
Description
While searching with a boolean filter (e.g.
Model::search($query)->where('myFilter', true)->get
), TypesenseEngine.php will transform thetrue
value into1
before passing it into thetypesense-php
SDK to be sent to the Typsense server. This results in aTypesense\Exceptions\RequestMalformed
exception with a message of "Value of filter fieldmyFilter
must betrue
orfalse
."I believe I have narrowed the issue down to the method
TypesenseEngine::filters()
, specifically the calls toCollection::map()
here:Looking at the data within the
Builder
instance passed into this function, I see boolean values for the filter parameters. However when I look at the$value
parameter passed intoparseWhereFilter()
I see a1
where the Builder containedtrue
.Steps To Reproduce
true
RequestMalformed
exception.