Як створити атрибут продукту Magento 2 програмно за допомогою типу: область тексту.
Як створити атрибут продукту Magento 2 програмно за допомогою типу: область тексту.
Відповіді:
Огляд програмного додавання атрибутів продукту
InstallData.php
install()
методКрок 1: Створіть файлInstallData.php
Почнемо з класу InstallData, який знаходиться в
app/code/Mageplaza/HelloWorld/Setup/InstallData.php.
Вміст цього файлу:
<?php
namespace Mageplaza\HelloWorld\Setup;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
private $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
}
Крок 2: Визначте метод install ()
<?php
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
}
Крок 3: Створення спеціального атрибута
Тут наведено всі коди рядків програми InstallData.php
для програмного створення атрибуту продукту.
<?php
namespace Mageplaza\HelloWorld\Setup;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
private $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->addAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'sample_attribute',
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Sample Atrribute',
'input' => '',
'class' => '',
'source' => '',
'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
'visible' => true,
'required' => true,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
}
}
Як бачите, потрібен лише метод addAttribute: ідентифікатор типу об'єкта, якому ми хочемо додати атрибут Ім'я атрибута Масив пар ключових значень для визначення атрибута, такого як група, тип введення, джерело, мітка…
Все готово, запустіть сценарій оновлення php bin / magento setup: оновлення для встановлення модуля і буде створено атрибут продукту sample_attribute.
Якщо ви хочете видалити атрибут продукту, ви можете використовувати метод deleteAttribute замість addAttribute. Буде так:
Редагувати:
для видалення створіть додаток / код / Mageplaza / HelloWorld / Setup / Uninstall.php.
<?php
namespace Mageplaza\HelloWorld\Setup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UninstallInterface;
class Uninstall implements UninstallInterface
{
private $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
public function uninstall(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'sample_attribute');
}
}
Також ви можете дотримуватися нижче URL-адреси для створення спеціального атрибута продукту.