File tree Expand file tree Collapse file tree 2 files changed +22
-3
lines changed
src/Jenssegers/Mongodb/Query Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Original file line number Diff line number Diff line change @@ -978,9 +978,13 @@ protected function compileWhereBasic(array $where)
978
978
{
979
979
extract ($ where );
980
980
981
- // Replace like with a Regex instance.
982
- if ($ operator == 'like ' ) {
983
- $ operator = '= ' ;
981
+ // Replace like or not like with a Regex instance.
982
+ if (in_array ($ operator , ['like ' , 'not like ' ])) {
983
+ if ($ operator === 'not like ' ) {
984
+ $ operator = 'not ' ;
985
+ } else {
986
+ $ operator = '= ' ;
987
+ }
984
988
985
989
// Convert to regular expression.
986
990
$ regex = preg_replace ('#(^|[^ \\\])%# ' , '$1.* ' , preg_quote ($ value ));
Original file line number Diff line number Diff line change @@ -71,6 +71,21 @@ public function testLike(): void
71
71
$ this ->assertCount (1 , $ users );
72
72
}
73
73
74
+ public function testNotLike (): void
75
+ {
76
+ $ users = User::where ('name ' , 'not like ' , '%doe ' )->get ();
77
+ $ this ->assertCount (7 , $ users );
78
+
79
+ $ users = User::where ('name ' , 'not like ' , '%y% ' )->get ();
80
+ $ this ->assertCount (6 , $ users );
81
+
82
+ $ users = User::where ('name ' , 'not LIKE ' , '%y% ' )->get ();
83
+ $ this ->assertCount (6 , $ users );
84
+
85
+ $ users = User::where ('name ' , 'not like ' , 't% ' )->get ();
86
+ $ this ->assertCount (8 , $ users );
87
+ }
88
+
74
89
public function testSelect (): void
75
90
{
76
91
$ user = User::where ('name ' , 'John Doe ' )->select ('name ' )->first ();
You can’t perform that action at this time.
0 commit comments