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 is an improvement on PR #975.
The initial motivation is to support the search for belongsTo=null.
In these cases, it is necessary that the database, the column allows nulls, for example
$table->foreignId('user_id')->nullable()->constrained(table: 'users', indexName: 'posts_user_id');
.In cases where it is detected that a nullable value is sent (
null
,'null'
,0
,'0'
,''
), thenwhereNull($column)
is added to the query.In this PR the code was simplified, instead of using
whereBelongsTo($collection, $relation)
,whereIn($relation->getQualifiedForeignKeyName(), $values)
was used; where$values
is no longer a collection but an array (with the ids).In cases where a nullable value and an id are sent at the same time, for example
[null, 1, 3]
, both wheres are executed using theOR
operator:$query->where(fn () => $q->orWhereNull($relationColumn)->orWhereIn($relationColumn, $values)
As I said in #975
The documentation is pending.
https://github.com/spatie/laravel-query-builder/blob/main/docs/features/filtering.md#belongsto-filters