У меня есть вопрос, какова точная разница между расширением атрибутов и пользовательских атрибутов ?
Кто-нибудь здесь, кто может дать мне несколько идей ?!
magento2
extension-attributes
анонимный
источник
источник
Ответы:
Пользовательские атрибуты - это атрибуты, добавленные для описания объекта, такие как атрибуты продукта, атрибуты клиента и т. Д. Это подмножество атрибутов EAV.
Атрибуты расширения, с другой стороны, обычно используются для более сложных типов данных, таких как добавление дополнительных сложных данных в объект из пользовательской внешней таблицы.
Проще говоря, пользовательские атрибуты соответствуют стандартам EAV, тогда как атрибуты расширения используются для более сложных данных, которые пользовательские атрибуты не могут обрабатывать.
источник
Пользовательские атрибуты - это те, которые добавляются от имени продавца. Например, продавцу может потребоваться добавить пользовательские атрибуты к сущности продукта с именем «customizeable», в которой он хочет сохранить информацию о том, будет ли этот продукт настраиваться сторонними производителями или нет.
И пользовательские атрибуты, и атрибуты расширения имеют немного одинаковую функциональность (для хранения данных), но между пользовательскими атрибутами и функциональностью атрибутов расширения существует значительная разница. например
мы можем добавить дополнительные критерии поиска с атрибутом расширения, соединив его с любой другой таблицей БД. Мы можем аутентифицировать его, добавив в него ACL. Давайте объясним в деталях.
Пожалуйста, посмотрите на следующий фрагмент. Вы должны создать /etc/extension_attributes.xml
Поиск атрибутов расширения: В теге объединения вы можете определить относительную таблицу, к которой хотите присоединиться, и получить данные из этой таблицы. В атрибуте reference_table вы должны указать имя таблицы, в то время как поле reference_field будет первичным ключом (первым ключом таблицы, для которого этот атрибут расширения создается как в продуктах этого примера), в который вы помещаете свое отношение / соединение. join_on_field, как подсказывает название, будет вторыми таблицами PK, для которых нам нужны записи. Под тегами полей вы можете добавить все необходимые поля, которые вы хотите получить данные
Аутентификация атрибута расширения: Вы можете ограничить это конкретное значение атрибута расширения с помощью тега. Чтобы понять это, давайте приведем пример. Скажем, у нас есть более одного атрибута расширения для продуктов, и один из них говорит, что extra_special_price мы не хотим показывать всем пользователям. Мы можем ограничить этот атрибут. Посмотрите на следующий фрагмент.
В этом примере атрибут stock_item ограничен только пользователями, имеющими разрешение Magento_CatalogInventory :: cataloginventory, в то время как logo_size не имеет никаких условий для него.
Так что теперь, если вы получаете объект продукта (каким-либо образом через API или из Интернета), если текущий пользователь имеет разрешения для каталога каталог, он получит только значения stock_items.
Вне сферы этого вопроса, но посмотрите, как вы создадите атрибут с помощью custom_extension по следующей ссылке очень простым способом: Как создать extension_attributes
источник