Magento getData()没有返回值

时间:2014-02-21 11:53:31

标签: php magento

我有一个属性cdn_image_name,适用于大约90,000种产品。最近内容编辑报告说,大约有三种产品缺少图像。我已经向Magento的getData()方法指出了这个问题。

这是与原始代码类似的代码。

$cdnImageName = $product->getData('cdn_image_name');

我也试过了:

$cdnImageName = $product->getCdnImageName();
$cdnImageName = $product->getAttributeText('cdn_image_name');

在Magento管理界面中,我看到填充了正确值的字段。我检查了数据库它也有价值。它只是通过我尝试过的任何方式返回“null”。

注意:没有拼写错误,我已经检查了“n”次,它几乎适用于所有产品,只有少数。

4 个答案:

答案 0 :(得分:3)

如果您在产品列表中设置'会出现此问题。没有'。只需在“管理属性”中更改它。

答案 1 :(得分:2)

如果您使用自定义属性,则可以像

一样使用它
$cdnImageName = Mage::getResourceModel('catalog/product')->getAttributeRawValue($product_new->getData("entity_id"), "cdn_image_name", $storeID);


$product_new->getData("entity_id") = your product id

修改

同时检查

$_item = $this->getProduct()->getId();
$_resource = $this->getProduct()->getResource();
$optionValue = $_resource->getAttributeRawValue($_item, 'cdn_image_name', Mage::app()->getStore());
echo $optionvalue;

希望这对你有用。

答案 2 :(得分:0)

你可以试试这个

$cdnImageName = Mage::getResourceModel('catalog/product')->getAttributeRawValue($product->getId(), 'cdn_image_name');

由于

答案 3 :(得分:0)

您可以使用直接SQL查询,然后在Magento中获取它:

// Create read and write connections to the database
    $resource  = Mage::getSingleton('core/resource');
    $connRead  = $resource->getConnection('core_read');

    // find out attribute id of cdn_image_name from the Magento database
    $attributeId = 123;

    $sqlCdnImageName = "SELECT `cpet`.`value`
            FROM `catalog_product_entity` `cpe`
            INNER JOIN `catalog_product_entity_text` `cpet`
            ON `cpe`.`entity_id` = `cpet`.`entity_id`
            WHERE `cpet`.`attribute_id` = $attributeId
            AND `cpe`.`entity_id` = " . $product->getId() . ";";

     $cdnImageName = $connRead->fetchOne($sqlCdnImageName);