Skip to content

Commit

Permalink
Allow custom presence verifier in model validation
Browse files Browse the repository at this point in the history
  • Loading branch information
daftspunk committed Jan 4, 2025
1 parent 9ba432e commit 0f7f220
Showing 1 changed file with 25 additions and 5 deletions.
30 changes: 25 additions & 5 deletions src/Database/Traits/Validation.php
Original file line number Diff line number Diff line change
Expand Up @@ -250,19 +250,38 @@ protected function getRelationValidationValue($relationName)
* the validator use a different database connection than the default connection.
* @return \Illuminate\Validation\Validator
*/
protected static function makeValidator($data, $rules, $customMessages, $attributeNames, $connection = null)
protected static function makeValidator($data, $rules, $customMessages, $attributeNames, $connection = null, $verifier = null)
{
$validator = Validator::make($data, $rules, $customMessages, $attributeNames);
// @deprecated make required arg (v4) desired signature below
// makeValidator($data, $rules, $customMessages, $attributeNames, $verifier)
//
if ($verifier === null) {
$verifier = App::make('validation.presence');
}

// @deprecated set via getValidationPresenceVerifier (v4)
if ($connection !== null) {
$verifier = App::make('validation.presence');
$verifier->setConnection($connection);
$validator->setPresenceVerifier($verifier);
}

$validator = Validator::make($data, $rules, $customMessages, $attributeNames);
$validator->setPresenceVerifier($verifier);

return $validator;
}

/**
* getValidationPresenceVerifier
*/
protected function getValidationPresenceVerifier()
{
$verifier = App::make('validation.presence');

$verifier->setConnection($this->getConnectionName());

return $verifier;
}

/**
* forceSave the model even if validation fails
* @return bool
Expand Down Expand Up @@ -394,7 +413,8 @@ public function validate($rules = null, $customMessages = null, $attributeNames
$rules,
$customMessages,
$attrNames,
$this->getConnectionName()
$this->getConnectionName(),
$this->getValidationPresenceVerifier()
);

$success = $validator->passes();
Expand Down

0 comments on commit 0f7f220

Please sign in to comment.