Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-mongodb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sinan
laravel-mongodb
Commits
2d76d22a
Unverified
Commit
2d76d22a
authored
Sep 13, 2019
by
Jens Segers
Committed by
GitHub
Sep 13, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1829 from ahmedsayedabdelsalam/master
fix filtering with operator not like issue
parents
f3f230a9
30098cd3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
3 deletions
+22
-3
Builder.php
src/Jenssegers/Mongodb/Query/Builder.php
+7
-3
QueryTest.php
tests/QueryTest.php
+15
-0
No files found.
src/Jenssegers/Mongodb/Query/Builder.php
View file @
2d76d22a
...
...
@@ -978,9 +978,13 @@ class Builder extends BaseBuilder
{
extract
(
$where
);
// Replace like with a Regex instance.
if
(
$operator
==
'like'
)
{
$operator
=
'='
;
// Replace like or not like with a Regex instance.
if
(
in_array
(
$operator
,
[
'like'
,
'not like'
]))
{
if
(
$operator
===
'not like'
)
{
$operator
=
'not'
;
}
else
{
$operator
=
'='
;
}
// Convert to regular expression.
$regex
=
preg_replace
(
'#(^|[^\\\])%#'
,
'$1.*'
,
preg_quote
(
$value
));
...
...
tests/QueryTest.php
View file @
2d76d22a
...
...
@@ -71,6 +71,21 @@ class QueryTest extends TestCase
$this
->
assertCount
(
1
,
$users
);
}
public
function
testNotLike
()
:
void
{
$users
=
User
::
where
(
'name'
,
'not like'
,
'%doe'
)
->
get
();
$this
->
assertCount
(
7
,
$users
);
$users
=
User
::
where
(
'name'
,
'not like'
,
'%y%'
)
->
get
();
$this
->
assertCount
(
6
,
$users
);
$users
=
User
::
where
(
'name'
,
'not LIKE'
,
'%y%'
)
->
get
();
$this
->
assertCount
(
6
,
$users
);
$users
=
User
::
where
(
'name'
,
'not like'
,
't%'
)
->
get
();
$this
->
assertCount
(
8
,
$users
);
}
public
function
testSelect
()
:
void
{
$user
=
User
::
where
(
'name'
,
'John Doe'
)
->
select
(
'name'
)
->
first
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment