mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-16 17:44:41 +00:00
MVC, handle validations. remove duplicate messages, when a fieldtype validates on multiple conditions, there may be duplicate texts in the validation output. for example:
```
$validators[] = new MinMaxValidator(array('message' => $this->internalValidationMessage,
"min" => $this->minimum_value,
"max" => $this->maximum_value
));
$validators[] = new Numericality(array('message' => $this->internalValidationMessage));
```
Will both fail when `122.99XX` is inserted, raising `internalValidationMessage` message twice
This commit is contained in:
parent
3600cf26b4
commit
cc5f5f05ee
@ -154,14 +154,17 @@ abstract class ApiMutableModelControllerBase extends ApiControllerBase
|
||||
} else {
|
||||
$fieldnm = $resultPrefix.".".$msg->getField();
|
||||
}
|
||||
$msgText = $msg->getMessage();
|
||||
if (empty($result["validations"][$fieldnm])) {
|
||||
$result["validations"][$fieldnm] = $msg->getMessage();
|
||||
$result["validations"][$fieldnm] = $msgText;
|
||||
} elseif (!is_array($result["validations"][$fieldnm])) {
|
||||
// multiple validations, switch to array type output
|
||||
$result["validations"][$fieldnm] = array($result["validations"][$fieldnm]);
|
||||
$result["validations"][$fieldnm][] = $msg->getMessage();
|
||||
} else {
|
||||
$result["validations"][$fieldnm][] = $msg->getMessage();
|
||||
if (!in_array($msgText, $result["validations"][$fieldnm])) {
|
||||
$result["validations"][$fieldnm][] = $msgText;
|
||||
}
|
||||
} elseif (!in_array($msgText, $result["validations"][$fieldnm])) {
|
||||
$result["validations"][$fieldnm][] = $msgText;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user