Nesne özelliği olan $ tasarruf object-> save ();

0 Cevap php

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.

0 Cevap