Php Magento getData()未返回值

Php Magento getData()未返回值,php,magento,Php,Magento,我有一个属性cdn\u image\u name,它可以很好地用于大约90000种产品。最近,内容编辑报告说,大约有三种产品缺少图像。我已经指出了Magento的getData()方法的问题 这是一个与原始代码类似的代码 $cdnImageName = $product->getData('cdn_image_name'); 我也试过: $cdnImageName = $product->getCdnImageName(); $cdnImageName = $product->

我有一个属性
cdn\u image\u name
,它可以很好地用于大约90000种产品。最近,内容编辑报告说,大约有三种产品缺少图像。我已经指出了Magento的getData()方法的问题

这是一个与原始代码类似的代码

$cdnImageName = $product->getData('cdn_image_name');
我也试过:

$cdnImageName = $product->getCdnImageName();
$cdnImageName = $product->getAttributeText('cdn_image_name');
在Magento管理界面中,我看到该字段填充了正确的值。我已经检查了数据库,它也有相应的值。它简单地返回“null”,使用上面我尝试过的任何方法


注意:没有输入错误的问题,我已经检查了“n”次,它几乎适用于所有产品,只有少数产品除外。

如果您使用的是自定义属性,那么您可以像这样使用它

$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;
希望这对你有用。

你可以试试这个

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

谢谢

您可以使用直接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);

如果将“用于产品列表”设置为“否”,则可能发生此问题。只需在“管理属性”中进行更改。

您好,您是否尝试设置属性$attributeSetModel=Mage::getModel(“eav/entity_属性_集”)$attributeSetModel->load($product->getAttributeSetTid());你能检查一下返回的是什么吗?Marian,我希望属性集有问题。。。。此属性未在属性集合中赋值try to run index process我确实运行了索引过程,谢谢KeyUrd您有多个StoreView吗?如果是这样,请检查所有商店视图中此字段的值,可能其中一些字段会覆盖默认值。第一段代码的工作原理与我的相同,它为我的代码所执行的thr产品返回正确的值,而为有问题的产品返回false。第二个不起作用。此刻一切都没有改变,我仍然在原地。ThanksI在研究另一个场景时找到了您的答案。没有为任何产品返回我的UPC属性。在这种情况下,您的
getResourceModel()
方法对我很有效——谢谢!您如何知道何时使用getAttributeRawValue或getData()?对不起,伙计,我仍然得到一个“false”值。对于此类问题,不建议直接使用SQL查询。