Skip to content

Commit

Permalink
Merge pull request #2154 from divine/add_escape_3_7
Browse files Browse the repository at this point in the history
[3.7] Backport of #1992 to 3.7
  • Loading branch information
divine authored Dec 18, 2020
2 parents aa085bd + 4f3f0b8 commit 7a309ef
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.

### Changed
- (Backport) MongodbQueueServiceProvider does not use the DB Facade anymore [#2149](https://github.com/jenssegers/laravel-mongodb/pull/2149) by [@curosmj](https://github.com/curosmj)
- Add escape regex chars to DB Presence Verifier [#1992](https://github.com/jenssegers/laravel-mongodb/pull/1992) by [@andrei-gafton-rtgt](https://github.com/andrei-gafton-rtgt).

## [3.7.1] - 2020-10-29

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class DatabasePresenceVerifier extends \Illuminate\Validation\DatabasePresenceVe
*/
public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = [])
{
$query = $this->table($collection)->where($column, 'regex', "/$value/i");
$query = $this->table($collection)->where($column, 'regex', "/" . preg_quote($value) . "/i");

if ($excludeId !== null && $excludeId != 'NULL') {
$query->where($idColumn ?: 'id', '<>', $excludeId);
Expand Down
20 changes: 20 additions & 0 deletions tests/ValidationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,26 @@ public function testUnique(): void
['name' => 'required|unique:users']
);
$this->assertFalse($validator->fails());

User::create(['name' => 'Johnny Cash', 'email' => 'johnny.cash+200@gmail.com']);

$validator = Validator::make(
['email' => 'johnny.cash+200@gmail.com'],
['email' => 'required|unique:users']
);
$this->assertTrue($validator->fails());

$validator = Validator::make(
['email' => 'johnny.cash+20@gmail.com'],
['email' => 'required|unique:users']
);
$this->assertFalse($validator->fails());

$validator = Validator::make(
['email' => 'johnny.cash+1@gmail.com'],
['email' => 'required|unique:users']
);
$this->assertFalse($validator->fails());
}

public function testExists(): void
Expand Down
1 change: 1 addition & 0 deletions tests/models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
* Class User
* @property string $_id
* @property string $name
* @property string $email
* @property string $title
* @property int $age
* @property \Carbon\Carbon $birthday
Expand Down

0 comments on commit 7a309ef

Please sign in to comment.