Ben bir magento programcı değilim ve ben, bir nesne üzerinde mülkiyet veritabanına kaydedilir değildi neden anlamaya birkaç uzun dakika kaybederek oldum.
Açıklayalım, burada ben aynı şeyi yapmak için beklediğiniz kod 3 adet şunlardır:
First code
$order = Mage::getModel('sales/order')->load(1873);
$myInfo = 'important piece of information';
$order->getPayment()->setAdditionalInformation('my_info',$myInfo);
$order->getPayment()->save(); //No information in the database is saved
Veritabanına kaydedilir değer yok.
Second code
$order = Mage::getModel('sales/order')->load(1873);
$myInfo = 'important piece of information';
$payment = $order->getPayment();
$payment->setAdditionalInformation('my_info',$myInfo);
$payment->save(); //No information in the database is saved
Veritabanına kaydedilir değer yok.
Third code
$order = Mage::getModel('sales/order')->load(1873);
$myInfo = 'important piece of information';
$order->getPayment()->setAdditionalInformation('my_info',$myInfo)->save(); //YEAHHH ! It works ! I now have that in my database.
Son olarak, ben hallederim!
The code from setAdditionalInformation
/**
* Additional information setter
* Updates data inside the 'additional_information' array
* or all 'additional_information' if key is data array
*
* @param string|array $key
* @param mixed $value
* @return Mage_Payment_Model_Info
* @throws Mage_Core_Exception
*/
public function setAdditionalInformation($key, $value = null)
{
if (is_object($value)) {
Mage::throwException(Mage::helper('sales')->__('Payment disallow storing objects.'));
}
$this->_initAdditionalInformation();
if (is_array($key) && is_null($value)) {
$this->_additionalInformation = $key;
} else {
$this->_additionalInformation[$key] = $value;
}
return $this->setData('additional_information', $this->_additionalInformation);
}
not: son setData () her zaman $ bu döndürür
Question, Why ?
Ben özellikle ilk kod, PHP çalıştığı yol hakkında bazı özgünlükleri unuttum düşünüyorum. Ben PHP ile nedeniyle bazı bellek şeyler çalışmıyor anlayacaktır.
Ama kod diğer iki adet, neden çalışmıyor?
Thanks, Hugues.