Convertire Mage_Customer_Model_Customer oggetto in un array e convertire nuovamente per oggetto
-
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
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);