Magento:[DB:table {eav_attribute} - >如何? field {frontend_input}]工作?

时间:2012-01-31 15:51:05

标签: magento

在这篇文章中找不到谷歌的任何信息。

我知道这个字段(frontend_input)是某个属性类的一部分。

我可以在代码中找到它,它是如何工作的?

更新 我找到了一个定义了frontend_input类的类文件夹。

这是 lib / Varien / Data / Form / Element / 。**

我在这里找到的一些逻辑 - app / code / core / Mage / Eav / Model / Resource / Entity / Attribute.php:

    /**
     * Retrieve attribute codes by front-end type
     *
     * @param string $frontendType
     * @return array
     */
    public function getAttributeCodesByFrontendType($frontendType)
    {
        $adapter = $this->_getReadAdapter();
        $bind    = array(':frontend_input' => $frontendType);
        $select  = $adapter->select()
            ->from($this->getTable('eav/attribute'), 'attribute_code')
            ->where('frontend_input = :frontend_input');

        return $adapter->fetchCol($select, $bind);
    }

和getAttributeCodesByFrontendType在这里调用:

应用程序/代码/核心/法师/目录/数据/ catalog_setup /数据升级-1.6.0.0.4-1.6.0.0.5.php

$eavResource = Mage::getResourceModel('catalog/eav_attribute');

$multiSelectAttributeCodes = $eavResource->getAttributeCodesByFrontendType('multiselect');

但我还不清楚* frontend_input *字段用于什么?

2 个答案:

答案 0 :(得分:1)

xml中有一个定义告诉系统你将使用什么样的EAV,以及它将存储的数据类型(整数,十进制,Varachar,日期等)。

EAV表(每个表示定义的数据类型)将存储产品的实体ID,以及属性ID和值。

看一下这个链接:

http://www.magento-exchange.com/wp-content/uploads/2010/11/Magento-EAV-ER-Diagram.png

我也会在帖子中附上它。ERD for EAV relationships

答案 1 :(得分:1)

所以,似乎我找到了答案。此字段的值用于设置前端字段类型的类型。如果设置选择,您将在管理面板中获得选择框。文字类型 - 输入框。因此,每种类型都将其值存储在 [entyty_name] 实体 [type] 中。例如: catalog_category_entity_varchar