Convertire Mage_Customer_Model_Customer oggetto in un array e convertire nuovamente per oggetto

magento.stackexchange https://magento.stackexchange.com/questions/15886

  •  22-10-2019
  •  | 
  •  

Domanda

I aveva criptato del cliente nome, cognome ed e-mail e la necessità di dati Decrypt di mostrare in front-end.
Sarò imperativi public function getCustomer() situato a file di app/code/core/Mage/Model/Session.php. Clienti dati recuperati da $customer = Mage::getModel('customer/customer') ->setWebsiteId(Mage::app()->getStore()->getWebsiteId()); $customer->load($this->getId());

Aggiorna

Quando mai io uso print_r($customer) per stampare i dati di login del cliente ottengo Mage_Customer_Model_Customer Object.

problema

Voglio sostituire il valore decifrato di nome, cognome e-mail con un $customer['_origData:protected'] array e $customer['_Data:protected'] poiché i metodi sono protetti così ho dell'oggetto convertito in una matrice e convertito di nuovo in un oggetto dopo aver superato funzione di decifratura, ma oggetto convertito è senza metodi protetti. Sto ricevendo Errore fatale quando l'oggetto convertito viene passato alla funzione $this->setCustomer($customer);

Quello che voglio Sostituire tre valori crittografati nome, cognome ed e-mail in oggetto Mage_Customer_Model_Customer Object

Basic La domanda è: -? Come sostituire i valori in un oggetto

È stato utile?

Soluzione

setData($key, $value) al cambiamento _data e setOrigData($key, $value) al cambiamento _origData

.

Inoltre, invece di setData('firstname', 'John') si può setFirstname('John') sempre scrivere, anche se il metodo non è dichiarato, grazie ai getter "magici" e setter in Varien_Object.

Altri suggerimenti

Non capisco esattamente alla tua domanda, ma se si desidera convertire una matrice a un'istanza stdClass Ecco un modo semplice per farlo.

$arr = YOUR ARRAY HERE;
$encoded = json_encode($arr);
$obj = json_decode($encoded);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top