获取正在Magento中编辑的产品的productID

时间:2013-02-14 20:38:54

标签: magento

在Magento中,有没有办法在Admin后端获取当前正在编辑的产品的productID?

我发现了这个:

Mage::registry('current_product');

但它似乎没有被编辑的那个。

编辑:如果它有任何区别,我正试图从听取该事件的扩展程序中获取它:

catalog_product_gallery_upload_image_after

2 个答案:

答案 0 :(得分:4)

当前产品的ID在URL中。您可以将其检索为如下参数:

$productId = Mage::app()->getRequest()->getParam('id');

如果要将产品作为对象加载,请存储该ID并使用

$product = Mage::getModel('catalog/product')->load($productId);

编辑:看起来你正在使用观察者。我假设的观察者文件本身并不扩展Magento的任何部分。 (这是文件吗?http://svn.magentocommerce.com/source/branches/1.7/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/GalleryController.php)尝试获取操作并以此方式获取请求

$action = $observer->getAction();
$productId = $action->getRequest()->getParam('id');

答案 1 :(得分:1)

只要在Mage::registry('product')被调用后请求,这应该可以正常工作Mage_Adminhtml_Catalog_ProductController::_initProduct()

Mage::app()->getRequest()->getParam('id')也应该有用。

根据活动进行修改

响应源自JS的请求,调度正在观察的事件。控制器操作不知道调用上下文,并且注册表中没有注册产品。记录请求参数或可能是引荐来源可能会提供见解。