【发布时间】:2012-04-02 21:51:31
【问题描述】:
Magento 1.6.1 我正在尝试获取观察者的表单数据。我试过了
$observer->getEvent()->getForm();
它是空的。这是我的一些代码
<catalog_product_new_action>
<observers>
<namespace_module_save_product_stuff>
<type>singleton</type>
<class>Namespace_Module_Model_Observer</class>
<method>saveProductStuff</method>
</namespace_module_save_product_stuff>
</observers>
</catalog_product_new_action>
事件观察者触发,但我根本无法获取表单,它只是返回 null。
public function saveProductStuff(Varien_Event_Observer $observer)
{
$roleId = implode('', Mage::getSingleton('admin/session')->getUser()->getRoles());
$roleName = Mage::getModel('admin/roles')->load($roleId)->getRoleName();
if($roleName != 'Administrators'){
try
{
$form = $observer->getEvent()->getForm();
var_dump($form);
} catch (Exception $e)
{
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
}
我真的需要在观察者身上得到这个表格,但什么都没有发生,我花了很多时间看教程,但它们都给了你这种做事的方法。
事件触发,我可以在其中执行操作,但无法获取表单。
我需要获取表单,然后将一个元素设置为禁用,如果它是某种类型的用户,我不能将它设置为锁定,因为这样属性将不会保存。我想尝试这样的事情:
$form = $observer->getEvent()->getForm();//returns NULL
$element = $form->getElement('attribute_code');
$value = 'test';
$element->setValue($test);
$element->setDisabled(true);
但没有运气。非常感谢任何帮助。
【问题讨论】:
标签: magento