Antworten:
Verwenden Sie den folgenden Code von upgradeData:
<?php
namespace Test\Custom\Setup;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\UpgradeDataInterface;
class UpgradeData implements UpgradeDataInterface
{
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
/** @var EavSetup $eavSetup */
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
if (version_compare($context->getVersion(), '2.0.2', '<')) {
$entityType = $eavSetup->getEntityTypeId('catalog_product');
$eavSetup->updateAttribute($entityType, 'mytest', 'frontend_input','select', null);
$eavSetup->updateAttribute($entityType, 'mytest', 'used_in_product_listing' , true, null);
}
}
}
Ändern Sie mytest
mit Ihrem Attributcode im obigen Code. Wenn Sie ein Problem haben, lassen Sie es mich bitte wissen.
Führen Sie das upgradeData
Skript mit Ihrem vorhandenen "Attributcode" als Bezeichner aus.
Ich habe den Eingabetyp test_attribute6
als Kennung für das vorhandene Attribut wie unten beschrieben aktualisiert .
$eavSetup->addAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'test_attribute6',
[
'type' => 'int',
'backend' => 'dropdown',
'frontend' => 'dropdown',
'label' => 'Test Attribute6',
'input' => 'dropdown',
'class' => '',
'source' => '',
'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => 0,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
Der folgende Code aktualisiert den Attributtyp "Attributname" in der Dropdown-Liste.
$customerSetup->updateAttribute(
\Magento\Customer\Model\Customer::ENTITY,
'attribute_name',
'frontend_input',
'select'
);
$customerSetup->updateAttribute(
\Magento\Customer\Model\Customer::ENTITY,
'attribute_name',
'source_model',
'Modulenamespace\Modulename\Model\Config\Source\Options'
);