Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Validator.php
Go to the documentation of this file.
1 <?php
8 
10 {
14  protected $_entityType;
15 
19  protected $_entityData;
20 
24  public function __construct(ElementFactory $attrDataFactory)
25  {
26  $this->_attrDataFactory = $attrDataFactory;
27  }
28 
35  public function isValid($entityData)
36  {
37  if ($entityData instanceof \Magento\Framework\DataObject) {
38  $this->_entityData = $entityData->getData();
39  } else {
40  $this->_entityData = $entityData;
41  }
42  return $this->validateData($this->_data, $this->_attributes, $this->_entityType);
43  }
44 
51  public function validateData(array $data, array $attributes, $entityType)
52  {
53  foreach ($attributes as $attribute) {
54  $attributeCode = $attribute->getAttributeCode();
55  if (!$attribute->getDataModel() && !$attribute->getFrontendInput()) {
56  continue;
57  }
58  if (!isset($data[$attributeCode])) {
59  $data[$attributeCode] = null;
60  }
61  $dataModel = $this->_attrDataFactory->create($attribute, $data[$attributeCode], $entityType);
62  $dataModel->setExtractedData($data);
63  $value = empty($data[$attributeCode]) && isset(
64  $this->_entityData[$attributeCode]
65  ) ? $this->_entityData[$attributeCode] : $data[$attributeCode];
66  $result = $dataModel->validateValue($value);
67  if (true !== $result) {
68  $this->_addErrorMessages($attributeCode, (array)$result);
69  }
70  }
71  return count($this->_messages) == 0;
72  }
73 
80  public function setEntityType($entityType)
81  {
82  $this->_entityType = $entityType;
83  }
84 }
validateData(array $data, array $attributes, $entityType)
Definition: Validator.php:51
__construct(ElementFactory $attrDataFactory)
Definition: Validator.php:24
$value
Definition: gender.phtml:16
$attributeCode
Definition: extend.phtml:12
$attributes
Definition: matrix.phtml:13
_addErrorMessages($code, array $messages)
Definition: Data.php:196