Skip to content

Commit

Permalink
pass data
Browse files Browse the repository at this point in the history
  • Loading branch information
TomK committed Aug 24, 2020
1 parent cb5c3d7 commit 2944713
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 12 deletions.
11 changes: 5 additions & 6 deletions src/DataHandlers/AbstractDataHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use Packaged\Form\DataHandlers\Interfaces\DataHandler;
use Packaged\Form\Decorators\AbstractDataHandlerDecorator;
use Packaged\Form\Decorators\Interfaces\DataHandlerDecorator;
use Packaged\Form\Form\Form;
use Packaged\Helpers\Strings;
use Packaged\SafeHtml\ISafeHtmlProducer;
use Packaged\Validate\IDataSetValidator;
Expand Down Expand Up @@ -181,13 +180,13 @@ public function clearErrors()
/**
* Validate the data, throwing an exception with the error
*
* @param mixed $value
* @param Form|null $form
* @param mixed $value
* @param array $data
*
* @return ValidationException[]
* @throws RuntimeException
*/
public function validateValue($value, ?Form $form = null): array
public function validateValue($value, array $data = []): array
{
$this->_initValidator();
$errors = [];
Expand All @@ -197,11 +196,11 @@ public function validateValue($value, ?Form $form = null): array
{
if($validator instanceof IDataSetValidator)
{
if(!$form)
if(!$data)
{
throw new RuntimeException('no form provided to dataset validator');
}
$validatorErrors = $validator->validate($form->getFormData());
$validatorErrors = $validator->validate($data);
}
else
{
Expand Down
7 changes: 3 additions & 4 deletions src/DataHandlers/Interfaces/DataHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
namespace Packaged\Form\DataHandlers\Interfaces;

use Exception;
use Packaged\Form\Form\Form;
use Packaged\SafeHtml\ISafeHtmlProducer;
use Packaged\Validate\IValidatable;
use Packaged\Validate\ValidationException;
Expand All @@ -25,12 +24,12 @@ public function isValidValue($value): bool;
/**
* Validate the data, return array of errors
*
* @param mixed $value
* @param Form|null $form
* @param mixed $value
* @param array $data additional data that may be required by some validators, eg. form data
*
* @return array
*/
public function validateValue($value, ?Form $form = null): array;
public function validateValue($value, array $data = []): array;

/**
* Validate the data, throwing an exception with the error
Expand Down
4 changes: 2 additions & 2 deletions src/Form/Form.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public function validate(): array
$keyedErrors = [];
foreach($this->_dataHandlers as $name => $handler)
{
$handlerErrors = $handler->validateValue($handler->getValue(), $this);
$handlerErrors = $handler->validateValue($handler->getValue(), $this->getFormData());
if($handlerErrors)
{
$keyedErrors[$name] = $handlerErrors;
Expand Down Expand Up @@ -154,7 +154,7 @@ public function hydrate(array $data, $hydrateInvalidValues = false)
if($ele instanceof DataHandler)
{
$value = $ele->formatValue($value);
$handlerErrors = $ele->validateValue($value, $this);
$handlerErrors = $ele->validateValue($value, array_merge($this->getFormData(), $data));
if(empty($handlerErrors))
{
$ele->setValue($value);
Expand Down

0 comments on commit 2944713

Please sign in to comment.