「admin_permissions_role_prepare_save」イベントを使用して役割の詳細を更新しています。更新が行われています。新しい値が保存されました。ただし、更新後、rolecontrollerssaveRoleActionのディスパッチイベントは古い値に復元されます。
Mage::dispatchEvent(
'admin_permissions_role_prepare_save',
array('object' => $role, 'request' => $this->getRequest())
);
このリクエストデータには古い値があります。リクエストデータを更新して新しい値を設定するにはどうすればよいですか?
編集:これが私のオブザーバーです。
public function saveStoreInformation($observer) {
$role_id = Mage::app()->getRequest()->getPost('role_id');
$store_ids_array = Mage::app()->getRequest()->getPost('gws_store_groups');
$store_ids = implode(',',$store_ids_array);
if(in_array(0,$store_ids_array))
{ $gws_is_all = 1; } else {$gws_is_all = 0;}
//$model = Mage::getModel('admin/role');
if($role_id) {
$data = array('gws_is_all'=>$gws_is_all,'gws_store_groups'=>"$store_ids");
$model = Mage::getModel('admin/role')->setData($data);
try {
$model->setId($role_id)
->save();
echo "Data updated successfully.";
} catch (Exception $e){
echo $e->getMessage();
}
}
}