在Magento中,有没有办法在Admin后端获取当前正在编辑的产品的productID?
我发现了这个:
Mage::registry('current_product');
但它似乎没有被编辑的那个。
编辑:如果它有任何区别,我正试图从听取该事件的扩展程序中获取它:
catalog_product_gallery_upload_image_after
答案 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的请求,调度正在观察的事件。控制器操作不知道调用上下文,并且注册表中没有注册产品。记录请求参数或可能是引荐来源可能会提供见解。