Magento 2.0 - 如何获得客户多选属性选项值

时间:2016-01-26 09:19:38

标签: php magento custom-attributes magento-2.0 customer

我试图从 Magento 2.0 EE上的客户会话中获取当前商店的自定义客户属性选项值。

现在我只获得选项ID:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Model\Session');
$customerRepository = $objectManager
    ->get('Magento\Customer\Api\CustomerRepositoryInterface');
$customer = $customerRepository->getById($customerSession->getCustomerId());
$attrValue = $customer->getCustomAttribute('attribute_code')->getValue();

var_dump($attrValue) is string(id1,id2,id3)

如何获取这些选项的前端文本值。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,我不确定这是一个好习惯......:

        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $customerSession = $objectManager->get('Magento\Customer\Model\Session');
        $customerRepository = $objectManager
            ->get('Magento\Customer\Api\CustomerRepositoryInterface');
        $customer = $customerRepository->getById($customerSession->getCustomerId());

        $model = $objectManager->create('Magento\Eav\Model\ResourceModel\Entity\Attribute\Option\Collection');
        $model->setIdFilter(explode(',',$customer->getCustomAttribute('attribute_code')->getValue()))
            ->setStoreFilter();

        var_dump($model->toOptionArray());