/** * @return \Magento\Framework\Controller\ResultInterface */ public function execute() { $response = new DataObject(); $response->setError(false); $attributeCode = $this->getRequest()->getParam('attribute_code'); $frontendLabel = $this->getRequest()->getParam('frontend_label'); $attributeCode = $attributeCode ?: $this->generateCode($frontendLabel[0]); $attributeId = $this->getRequest()->getParam('attribute_id'); $attribute = $this->_objectManager->create('Magento\\Catalog\\Model\\ResourceModel\\Eav\\Attribute')->loadByCode($this->_entityTypeId, $attributeCode); if ($attribute->getId() && !$attributeId) { $message = strlen($this->getRequest()->getParam('attribute_code')) ? __('An attribute with this code already exists.') : __('An attribute with the same code (%1) already exists.', $attributeCode); $this->setMessageToResponse($response, [$message]); $response->setError(true); $response->setProductAttribute($attribute->toArray()); } if ($this->getRequest()->has('new_attribute_set_name')) { $setName = $this->getRequest()->getParam('new_attribute_set_name'); /** @var $attributeSet \Magento\Eav\Model\Entity\Attribute\Set */ $attributeSet = $this->_objectManager->create('Magento\\Eav\\Model\\Entity\\Attribute\\Set'); $attributeSet->setEntityTypeId($this->_entityTypeId)->load($setName, 'attribute_set_name'); if ($attributeSet->getId()) { $setName = $this->_objectManager->get('Magento\\Framework\\Escaper')->escapeHtml($setName); $this->messageManager->addError(__('An attribute set named \'%1\' already exists.', $setName)); $layout = $this->layoutFactory->create(); $layout->initMessages(); $response->setError(true); $response->setHtmlMessage($layout->getMessagesBlock()->getGroupedHtml()); } } return $this->resultJsonFactory->create()->setJsonData($response->toJson()); }
/** * @return \Magento\Framework\Controller\Result\Json */ public function execute() { $response = new DataObject(); $id = $this->getRequest()->getParam('id'); if (intval($id) > 0) { $product = $this->productRepository->getById($id); $response->setId($id); $response->addData($product->getData()); $response->setError(0); } else { $response->setError(1); $response->setMessage(__('We can\'t retrieve the product ID.')); } /** @var \Magento\Framework\Controller\Result\Json $resultJson */ $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON); $resultJson->setData($response->toArray()); return $resultJson; }
/** * Customer address validation. * * @param \Magento\Framework\DataObject $response * @return void */ protected function _validateCustomerAddress($response) { $addresses = $this->getRequest()->getPost('address'); if (!is_array($addresses)) { return; } foreach (array_keys($addresses) as $index) { if ($index == '_template_') { continue; } $addressForm = $this->_formFactory->create('customer_address', 'adminhtml_customer_address'); $requestScope = sprintf('address/%s', $index); $formData = $addressForm->extractData($this->getRequest(), $requestScope); $errors = $addressForm->validateData($formData); if ($errors !== true) { $messages = $response->hasMessages() ? $response->getMessages() : []; foreach ($errors as $error) { $messages[] = $error; } $response->setMessages($messages); $response->setError(1); } } }