Skip to content

Commit 5f3c23c

Browse files
author
Yurii Torbyk
committed
MAGETWO-33813: Replace Magento\Framework\Model\Exception to LocalizedException
1 parent b990290 commit 5f3c23c

File tree

2 files changed

+30
-12
lines changed

2 files changed

+30
-12
lines changed

lib/internal/Magento/Framework/Model/AbstractModel.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,9 +450,10 @@ public function validateBeforeSave()
450450
$validator = $this->_getValidatorBeforeSave();
451451
if ($validator && !$validator->isValid($this)) {
452452
$errors = $validator->getMessages();
453-
$exception = new \Magento\Framework\Validator\ValidatorException(
454-
implode(PHP_EOL, $errors), [], null, $errors
455-
);
453+
$exception = new \Magento\Framework\Validator\ValidatorException(implode(PHP_EOL, $errors));
454+
foreach ($errors as $errorMessage) {
455+
$exception->addMessage(new \Magento\Framework\Message\Error($errorMessage));
456+
}
456457
throw $exception;
457458
}
458459
return $this;

lib/internal/Magento/Framework/Validator/ValidatorException.php

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ValidatorException extends \Magento\Framework\Exception\InputException
1212
/**
1313
* @var array
1414
*/
15-
protected $_messages;
15+
protected $messages = [];
1616

1717
/**
1818
* Constructor
@@ -29,29 +29,46 @@ public function __construct(
2929
array $messages = []
3030
) {
3131
if (!empty($messages)) {
32-
$this->_messages = $messages;
3332
$message = '';
34-
foreach ($this->_messages as $propertyMessages) {
33+
foreach ($messages as $propertyMessages) {
3534
foreach ($propertyMessages as $propertyMessage) {
3635
if ($message) {
3736
$message .= PHP_EOL;
3837
}
3938
$message .= $propertyMessage;
39+
$this->addMessage(new \Magento\Framework\Message\Error($propertyMessage));
4040
}
4141
}
42-
} else {
43-
$this->_messages = [$message];
4442
}
4543
parent::__construct($message, $params, $cause);
4644
}
4745

4846
/**
49-
* Get validation error messages
50-
*
47+
* @param \Magento\Framework\Message\AbstractMessage $message
48+
* @return $this
49+
*/
50+
public function addMessage(\Magento\Framework\Message\AbstractMessage $message)
51+
{
52+
if (!isset($this->messages[$message->getType()])) {
53+
$this->messages[$message->getType()] = [];
54+
}
55+
$this->messages[$message->getType()][] = $message;
56+
return $this;
57+
}
58+
59+
/**
60+
* @param string $type
5161
* @return array
5262
*/
53-
public function getMessages()
63+
public function getMessages($type = '')
5464
{
55-
return $this->_messages;
65+
if ('' == $type) {
66+
$arrRes = [];
67+
foreach ($this->messages as $messages) {
68+
$arrRes = array_merge($arrRes, $messages);
69+
}
70+
return $arrRes;
71+
}
72+
return isset($this->messages[$type]) ? $this->messages[$type] : [];
5673
}
5774
}

0 commit comments

Comments
 (0)