Php Magento获取属性

Php Magento获取属性,php,mysql,magento,Php,Mysql,Magento,我有一家Magento商店,里面有一些带有“对比度”属性的电视机 我需要从一个.phtml文件中获取这个属性,并且已经尝试了2天并遵循教程 有人能帮忙吗 我正在运行magento 1.4.2,请尝试以下操作: $\u product->getResource()->getAttribute(“对比度”)->getFrontend()->getValue($\u product) 其他选择包括: $\u product->getAttributeText('contrast\u ratio')尝试

我有一家Magento商店,里面有一些带有“对比度”属性的电视机

我需要从一个.phtml文件中获取这个属性,并且已经尝试了2天并遵循教程

有人能帮忙吗

我正在运行magento 1.4.2,请尝试以下操作:

$\u product->getResource()->getAttribute(“对比度”)->getFrontend()->getValue($\u product)

其他选择包括:

$\u product->getAttributeText('contrast\u ratio')

尝试以下方法:

$\u product->getResource()->getAttribute(“对比度”)->getFrontend()->getValue($\u product)

其他选择包括:


$\u product->getAttributeText('contrast\u ratio')

我找到了一种获得所需结果的方法

显然,我的属性没有加载到我的集合中,所以我重新编写了代码,并以自己的方式完成了任务

我的任务是创建一个属性“类别中的功能”,这样带有“是”的产品将出现在类别列表之前。以场对比度为例

我愿意和大家分享,这是我的代码

谢谢大家的帮助,你指引了我正确的方向:))


    装饰表('product-attribute-specs-table')

  • 我找到了一种方法来达到我想要的结果

    显然,我的属性没有加载到我的集合中,所以我重新编写了代码,并以自己的方式完成了任务

    我的任务是创建一个属性“类别中的功能”,这样带有“是”的产品将出现在类别列表之前。以场对比度为例

    我愿意和大家分享,这是我的代码

    谢谢大家的帮助,你指引了我正确的方向:))

    
    

      装饰表('product-attribute-specs-table')

    • 奥利弗:这一定有用,我已经用过几百次了。能否确认加载的产品对象具有如下属性:$\u product?还有,您想在哪个phtml文件上调用它?@Adam-传统的方法是
      $\u product->getContractRatio()
      。如果另一个开发人员在您使用
      getContrast\u ratio()
      时重写该方法,您将有效地绕过他们的工作。我无法想象$\u product->getContrast\u ratio()会起作用,Magento会将下划线转换为camelcasing,因此它将是$\u product->getContractRatio()@clockworkgeek,@Aaron James-我的错误$\u product->GetContractRatio()确实是该方法工作的唯一方式,我将从原始注释中删除它。我将尝试使用print\r($\u product->getData())查看该属性是否在模型中。您将通过这种方式了解模型的内部状态。接下来要做的事情是确保集合加载了属性,如果您可以控制集合的生成方式,请确保它添加了对比度属性。例如,尝试迭代此集合并查看您的属性是否存在:$products=Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*');奥利弗:这一定有用,我已经用过几百次了。能否确认加载的产品对象具有如下属性:$\u product?还有,您想在哪个phtml文件上调用它?@Adam-传统的方法是
      $\u product->getContractRatio()
      。如果另一个开发人员在您使用
      getContrast\u ratio()
      时重写该方法,您将有效地绕过他们的工作。我无法想象$\u product->getContrast\u ratio()会起作用,Magento会将下划线转换为camelcasing,因此它将是$\u product->getContractRatio()@clockworkgeek,@Aaron James-我的错误$\u product->GetContractRatio()确实是该方法工作的唯一方式,我将从原始注释中删除它。我将尝试使用print\r($\u product->getData())查看该属性是否在模型中。您将通过这种方式了解模型的内部状态。接下来要做的事情是确保集合加载了属性,如果您可以控制集合的生成方式,请确保它添加了对比度属性。例如,尝试迭代此集合并查看您的属性是否存在:$products=Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*');请说出哪个.phtml文件和哪个教程。请说出哪个.phtml文件和哪个教程。您有很多冗余<代码>$\u productCollection
    除了用于制作
    $\u项目
    之外,从未使用过。该集合被加载两次,一次作为
    getLoadedProductCollection()
    加载,另一次作为自定义
    $\u产品加载。您可以通过在管理中转到Catalog>Attributes>Manage Attributes,并在产品列表中为“类别中的功能”启用Used in Product Listing来避免整个混乱。这将使原始集合包含您的属性,而无需所有额外的编程。您有很多冗余<代码>$\u productCollection
    除了用于制作
    $\u项目
    之外,从未使用过。该集合被加载两次,一次作为
    getLoadedProductCollection()
    加载,另一次作为自定义
    $\u产品加载。您可以通过在管理中转到Catalog>Attributes>Manage Attributes,并在产品列表中为“类别中的功能”启用Used in Product Listing来避免整个混乱。这将使原始集合包含您的属性,而无需进行所有额外的编程。
    
    <?php
    
    Mage::getSingleton('catalog/layer')->setData("product_collection",NULL);
    $this->_productCollection = null;
    $_productCollection=$this->getLoadedProductCollection();
    
    $currentCategory = Mage::registry('current_category');
    
    $_products = Mage::getModel('catalog/product')
      ->getCollection()
      ->addAttributeToSelect(array('name','short_description','product_url','small_image'))
      ->addAttributeToFilter('seen_first', array('like' => '%1%'))
      ->addCategoryFilter($currentCategory)
      ->load();
      $_collectionSize = sizeof($_products);
    
    ?>
    
    
    <?php if(!sizeof($_products)): ?>
    <!--<div class="padder">
    <div class="note-msg">
    <?php echo $this->__('There are no products matching the selection.') ?>
    </div>
    </div>-->
    <?php else: ?>
    
    <?php
    
    // Grid Mode ?>
    <div class="listing-type-grid catalog-listing padder"> <!-- the class name will change to .listing-type-cell if viewing in list mode -->
    
    <?php $_items = $_productCollection->getItems();
    shuffle($_items); ?>
    
    <div class="price_omg_random_products_container">
    <table class="price_omg_random_products" cellspacing="0" class="generic-product-grid" id="product-list-table">
    <?php $i=0; foreach ($_products as $_product): ?>
    <?php if ($i++%4==0): ?>
    <tr>
    <?php endif ?>
    <td>
    <p class="product-image">
    <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>">
    <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(110, 110); ?>" alt="<?php echo $this->htmlEscape($_product->getName()) ?>"/>
    </a>
    </p>
    <h5><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo '<span class="price_omg_random_products_title">'.$this->htmlEscape($_product->getName()).'</span>' ?></a></h5>
    <?php if($_product->getRatingSummary()): ?>
    <!--?php echo $this->getReviewsSummaryHtml($_product, 'short') ?-->
    <?php echo $this->getReviewsSummaryHtml($_product) ?>
    <?php endif; ?>
    
    <?php
    
    
     ?>
    
    <div class="clear"></div>
    <ul class="add-to">
    
    <?php 
    
    echo nl2br($_product->getShortDescription());
    
     if($_additional = $_product->getAdditionalData()): ?>
    
        <h2><?php echo $this->__('Additional Information') ?></h2>
        <table class="data-table" id="product-attribute-specs-table">
            <col width="25%" />
            <col />
            <tbody>
            <?php foreach ($_additional as $_data): ?>
                <tr>
                    <th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
                    <td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
        <script type="text/javascript">decorateTable('product-attribute-specs-table')</script>
    <?php endif;?>
    
    <?
    
    
    if($_product->isSaleable()): ?>
    <li class="add-to-cart-textlink">
    <p>
    <?php 
          echo '<span class="price_omg_random_products_price" >&euro;'.number_format($_product->getPrice(), 2, '.', '').'</span>';
    ?>
    <!--<button type="button" title="<?php echo $this->__('Info') ?>" class="button" onclick="setLocation('<?php echo $_product->getProductUrl() ?>')"><span><span class="button_info"><?php echo $this->__('Info') ?></span></span></button>-->
    <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
    </p>
    <!--<a href="#" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span>Add to Cart</span></a>-->
    </li>
    <?php else: ?>
    <li><?php echo $this->__('Out of stock') ?></li>
    <?php endif; ?>
    <?php
    
    if ($i==4) break; // show 4 products max ?>
    
    <?php endforeach ?>
    <?php for($i;$i%4!=0;$i++): ?>
    <td class="empty-product">&nbsp;</td>
    <?php endfor ?>
    <?php if ($i%4==0): ?>
    </tr>
    <?php endif ?>
    </table>
    </div>
    <script type="text/javascript">decorateTable('product-list-table')</script>
    </div>
    
    <?php endif; ?>