Получение значения пользовательского атрибута в magento 2
Я использую magento 2.1.0, я создал пользовательский атрибут клиента и добавил поле на интерфейсе в форме редактирования информации о клиенте.
Когда я ввел какое-либо значение в форме редактирования, оно сохраняется в форме adimn, но не отображается на интерфейсе. означает, что данные не извлекаются на интерфейсе.
Итак, как получить эти данные для отображения на интерфейсе в этом поле:
<div class="field bloodgroup">
<label for="bloodgroup" class="label"><span><?php /* @escapeNotVerified */echo __('Blood Group') ?></span></label>
<select name="bloodgroup" id="bloodgroup">
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$model = $objectManager->create('\xxx\xxx\Model\BGroup')->avialable();
foreach ($model as $b)
{
?>
<option value="<?php echo $b['BloodGroup']; ?>"><?php echo $b['BloodGroup']; ?></option>
<?php } ?>
</select>
</div>
3
Author: Teja Bhagavan Kollepara, 2017-02-08
1 answers
Вы должны использовать приведенный ниже код для получения значения атрибута клиента в форме редактирования
<?php if($block->getCustomer()->getCustomAttribute('attribute_code')) {
echo $block->getCustomer()->getCustomAttribute('attribute_code')->getValue();
}?>
РЕДАКТИРОВАТЬ:
<?php $selected = '';
if($block->getCustomer()->getCustomAttribute('attribute_code')) {
$selected = $block->getCustomer()->getCustomAttribute('attribute_code')->getValue();
}?>
<div class="field bloodgroup">
<label for="bloodgroup" class="label"><span><?php /* @escapeNotVerified */echo __('Blood Group') ?></span></label>
<select name="bloodgroup" id="bloodgroup">
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$model = $objectManager->create('\xxx\xxx\Model\BGroup')->avialable();
foreach ($model as $b)
{
?>
<option value="<?php echo $b['BloodGroup']; ?>" <?php
if($selected == $b['BloodGroup']){ ?> selected='selected' <?php} ?> ><?php echo $b['BloodGroup']; ?></option>
<?php } ?>
</select>
</div>
2
Author: Prashant Valanda, 2017-02-08 12:43:02