【问题标题】:Magento: Getting Product Url's for Products within a Grouped ProductMagento:获取分组产品中产品的产品 URL
【发布时间】:2009-12-22 23:29:28
【问题描述】:

对于分组产品,我想显示一个指向它所组成的简单产品的链接。例如,如果我有一个名为 Dining Set 的分组产品,由盘子、刀子、叉子等组成。我希望每个子产品都有一个指向该子产品的链接(点击盘子转到用于盘子的简单产品)

<?php foreach ($_associatedProducts as $_item): ?>
    <tr>
        <td><?php echo $this->htmlEscape($_item->getName()) ?></td>
        <td class="a-right">
            <?php echo $this->getPriceHtml($_item, true) ?>
        </td>
        <?php if ($_product->isSaleable()): ?>
        <td class="a-center">
        <?php if ($_item->isSaleable()) : ?>
            <a href="<?php $_item->getProductUrl() ?>">View</a>
        <?php else: ?>
            <p class="availability"><span class="out-of-stock"><?php echo $this->__('Out of stock.') ?></span></p>
        <?php endif; ?>
        </td>
        <?php endif; ?>
    </tr>
<?php endforeach; ?>

这是来自 grouped.phtml 文件中的代码 sn-p

app/design/frontend/blank/default/template/catalog/product/view/type/grouped.phtml

尤其是具有$_item-&gt;getProductUrl() 的行, 这不起作用,而且我不知道获取此关联产品项的 url 所需的代码。如果有人可以在这里提供帮助,将不胜感激。

另外,究竟在哪里可以找到适用于产品或类别或$_item 等的方法(以及它们的使用方式)?

【问题讨论】:

    标签: php magento url product


    【解决方案1】:

    很容易找到所有的方法和功能。始终追溯到核心/app/code/core/Mage/Catalog/Model/Product.php 或该文件夹中的任何其他文件。

    你的代码很完美。只需使用

    $_item->getUrlPath() ;
    

    而不是productURL

    【讨论】:

    • 大多数时候你可以猜测...我创建了新的属性,如完成、尺寸、lead_time 等。在循环中,调用 getData('lead_time') 就可以了!出色的 ORM!
    【解决方案2】:

    关于获取可用方法/数据的几点说明:

    首先,要将所有方法实际编码到类中,您可以通过以下方式获取所有可用方法:

    $array = get_class_methods($_item); //yields an array of the methods in the class
    var_dump($array); // to see the methods
    

    要获取所有与数据相关的方法,首先要找出类中的数据成员。这适用于 Magento 中的大多数对象:

    $data = $_item->getData(); // $key => $value array
    

    那么你可以通过两种方式获取任何你想要的数据:

    // assuming I want 'my_data'
    $data = $_item->getMyData();
    $data = $_item->getData('my_data');
    

    【讨论】:

      【解决方案3】:
      <?php echo $this->htmlEscape($_item->getProductUrl()) ?>
      

      或者这里是整个 A HREF:

      <a href="<?php echo $this->htmlEscape($_item->getProductUrl()) ?>">
                  <?php echo $this->htmlEscape($_item->getName()) ?>
      </a>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多