Skip to content

Commit faf92fb

Browse files
committed
Merge pull request mongodb#1992 from andrei-gafton-rtgt/master
[3.x] add escape regex chars to DB Presence Verifier
2 parents c63aaeb + 22059df commit faf92fb

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

src/Jenssegers/Mongodb/Validation/DatabasePresenceVerifier.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class DatabasePresenceVerifier extends \Illuminate\Validation\DatabasePresenceVe
1616
*/
1717
public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = [])
1818
{
19-
$query = $this->table($collection)->where($column, 'regex', "/$value/i");
19+
$query = $this->table($collection)->where($column, 'regex', "/" . preg_quote($value) . "/i");
2020

2121
if ($excludeId !== null && $excludeId != 'NULL') {
2222
$query->where($idColumn ?: 'id', '<>', $excludeId);

tests/ValidationTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,26 @@ public function testUnique(): void
4141
['name' => 'required|unique:users']
4242
);
4343
$this->assertFalse($validator->fails());
44+
45+
User::create(['name' => 'Johnny Cash', 'email' => 'johnny.cash+200@gmail.com']);
46+
47+
$validator = Validator::make(
48+
['email' => 'johnny.cash+200@gmail.com'],
49+
['email' => 'required|unique:users']
50+
);
51+
$this->assertTrue($validator->fails());
52+
53+
$validator = Validator::make(
54+
['email' => 'johnny.cash+20@gmail.com'],
55+
['email' => 'required|unique:users']
56+
);
57+
$this->assertFalse($validator->fails());
58+
59+
$validator = Validator::make(
60+
['email' => 'johnny.cash+1@gmail.com'],
61+
['email' => 'required|unique:users']
62+
);
63+
$this->assertFalse($validator->fails());
4464
}
4565

4666
public function testExists(): void

tests/models/User.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* Class User
1414
* @property string $_id
1515
* @property string $name
16+
* @property string $email
1617
* @property string $title
1718
* @property int $age
1819
* @property \Carbon\Carbon $birthday

0 commit comments

Comments
 (0)