在Magento中,有沒有辦法在Admin後端獲取當前正在編輯的產品的productID?獲取正在Magento中編輯的產品的productID
我發現這一點:
Mage::registry('current_product');
,但它似乎並沒有得到編輯的一個。
編輯:如果這有什麼差別,我想從分機監聽事件得到它:
catalog_product_gallery_upload_image_after
在Magento中,有沒有辦法在Admin後端獲取當前正在編輯的產品的productID?獲取正在Magento中編輯的產品的productID
我發現這一點:
Mage::registry('current_product');
,但它似乎並沒有得到編輯的一個。
編輯:如果這有什麼差別,我想從分機監聽事件得到它:
catalog_product_gallery_upload_image_after
當前產品的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');
這應該工作,應該爲Mage::registry('product')
,只要Mage_Adminhtml_Catalog_ProductController::_initProduct()
被調用後它被請求。
Mage::app()->getRequest()->getParam('id')
也應該工作。
編輯基於事件
被觀察響應於JS發起請求分派的事件。控制器操作不知道調用上下文,並且註冊表中沒有註冊產品。記錄請求參數或可能的推薦人可能會提供洞察力。
我不認爲這是工作。這個語句:Mage :: log(Mage :: app() - > getRequest() - > getParam('id')); 不打印任何東西 而且,對它執行$ model-> load會返回一個空白產品對象。 – swl1020 2013-02-14 21:19:24
你要把這段代碼準確地放在哪裏? – 1000Nettles 2013-02-14 21:27:23
我有一個擴展,其中包含「catalog_product_gallery_upload_image_after」的Observer。代碼位於/Model/Observer.php中。 – swl1020 2013-02-14 21:31:27