Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHPORM-232 Support whereLike and whereNotLike #3108

Merged
merged 2 commits into from
Aug 26, 2024
Merged

Conversation

GromNaN
Copy link
Member

@GromNaN GromNaN commented Aug 21, 2024

Fix PHPORM-232
Fix #3080

Checklist

  • Add tests and ensure they pass
  • Add an entry to the CHANGELOG.md file
  • Update documentation for new features

@GromNaN GromNaN added this to the 4.8 milestone Aug 21, 2024
@GromNaN GromNaN requested a review from a team as a code owner August 21, 2024 15:31
@GromNaN GromNaN requested a review from mana2-bot August 21, 2024 15:31
@GromNaN GromNaN requested review from alcaeus and removed request for mana2-bot August 21, 2024 15:32
Comment on lines 751 to 779
yield 'whereLike' => [
['find' => [['name' => new Regex('^1$', 'i')], []]],
fn (Builder $builder) => $builder->whereLike('name', '1'),
];

yield 'whereLike case not sensitive' => [
['find' => [['name' => new Regex('^1$', 'i')], []]],
fn (Builder $builder) => $builder->whereLike('name', '1', false),
];

yield 'whereLike case sensitive' => [
['find' => [['name' => new Regex('^1$', '')], []]],
fn (Builder $builder) => $builder->whereLike('name', '1', true),
];

yield 'whereNotLike' => [
['find' => [['name' => ['$not' => new Regex('^1$', 'i')]], []]],
fn (Builder $builder) => $builder->whereNotLike('name', '1'),
];

yield 'whereNotLike case not sensitive' => [
['find' => [['name' => ['$not' => new Regex('^1$', 'i')]], []]],
fn (Builder $builder) => $builder->whereNotLike('name', '1', false),
];

yield 'whereNotLike case sensitive' => [
['find' => [['name' => ['$not' => new Regex('^1$', '')]], []]],
fn (Builder $builder) => $builder->whereNotLike('name', '1', true),
];
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -1324,6 +1325,13 @@ protected function compileWhereNotIn(array $where): array
return [$where['column'] => ['$nin' => array_values($where['values'])]];
}

protected function compileWhereLike(array $where): array
{
$where['operator'] = $where['not'] ? 'not like' : 'like';
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tests/Query/BuilderTest.php Show resolved Hide resolved
tests/Query/BuilderTest.php Show resolved Hide resolved
@GromNaN GromNaN merged commit 59e16b9 into mongodb:4.8 Aug 26, 2024
26 checks passed
@GromNaN GromNaN deleted the PHPORM-232 branch August 26, 2024 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Add whereLike clause to query builder
2 participants