123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Eav\Model\Attribute\Data;
- use Magento\Framework\App\RequestInterface;
- /**
- * EAV Entity Attribute Multiply select Data Model
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- class Multiselect extends \Magento\Eav\Model\Attribute\Data\Select
- {
- /**
- * Extract data from request and return value
- *
- * @param RequestInterface $request
- * @return array|string
- */
- public function extractValue(RequestInterface $request)
- {
- $values = $this->_getRequestValue($request);
- if ($values !== false && !is_array($values)) {
- $values = [$values];
- }
- return $values;
- }
- /**
- * Export attribute value to entity model
- *
- * @param array|string $value
- * @return $this
- */
- public function compactValue($value)
- {
- if (is_array($value)) {
- $value = implode(',', $value);
- }
- return parent::compactValue($value);
- }
- /**
- * Return formatted attribute value from entity model
- *
- * @param string $format
- * @return array|string
- */
- public function outputValue($format = \Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_TEXT)
- {
- $values = $this->getEntity()->getData($this->getAttribute()->getAttributeCode());
- if (!is_array($values)) {
- $values = explode(',', $values);
- }
- switch ($format) {
- case \Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_JSON:
- case \Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_ARRAY:
- $output = $values;
- // fall-through intentional
- default:
- $output = [];
- foreach ($values as $value) {
- if (!$value) {
- continue;
- }
- $output[] = $this->getAttribute()->getSource()->getOptionText($value);
- }
- $output = implode(', ', $output);
- break;
- }
- return $output;
- }
- }
|