【问题标题】:Magento: Get product id in php block for available in list.phtmlMagento:在 php 块中获取产品 id 以在 list.phtml 中可用
【发布时间】:2012-09-08 14:49:28
【问题描述】:

我正在尝试获取要在 list.phtml 上列出的属性,正在制作的表格如下: 我在 Block 上创建了一个模块并创建了一个捕获属性的函数:

    protected function getPreOrder()
{
    $productId = $this->getRequest()->getParam('id');
    $product = Mage::getModel('catalog/product')->load($productId);
    $preOrder = $product->getNewsFromDate();

    $preOrder = substr($preOrder, 0, 10);

    return $preOrder;
}
public function getViewList() 
{
    if(strtotime(date('Y-m-d')) <= strtotime($this->getPreOrder()))
    {
        return true;
    } else {
        return false;
    }

}

但是,没有返回任何内容。我也对 view.phtml 做了同样的方法,效果很好。这适用于函数 getChildHtml() phtml 之前的文件,未编辑 list.phtml

创建循环是有道理的,但是循环已经是list.phtml了!

会有什么办法? 谢谢你。

【问题讨论】:

    标签: list magento attributes


    【解决方案1】:

    您是否调试过块函数以查看产品 ID 是否正确以及是否正确加载模型? 还要调试模板 list.phtml 以检查它是否正确加载了块类型?

    get_class($this);

    看看它是什么类类型。

    【讨论】:

    • 你好 Meabed,是的,函数正常加载到phtml中。函数 getPreOrder() 在不同的块中用于相同的目的,但在这种情况下使用的 view.phtml 运行顺利。我的困难是获取product_id,用于list.phtml,没有返回任何内容。很奇怪,因为列表是一个 foreach。
    • 我尝试Mage::registry('current_product')->getId() 并返回致命错误:调用非对象上的成员函数getId() 我尝试$_proId = $this- >getProduct()->getId(); $_product= Mage::getModel('目录/产品')->load($_proId);并返回相同的东西。该类从 Mage_Core_Block_Template 扩展而来。这是正确的?为什么只能在list.phtml中获取不到产品id?
    • 所以这意味着注册表中不存在任何产品!打印出您从请求中获得的 ID,看看您是否真的可以看到它!呼应这个? echo $productId = $this->getRequest()->getParam('id');
    猜你喜欢
    • 2013-02-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多