getData () devuelve datos incorrectos
Pregunta
Tengo un atributo de cliente personalizado, que no es necesario, por lo que no está configurado para todos los clientes. Pero cuando le pregunto si un cliente tiene los datos. (hasData('attribute')
) Si no existe, devuelve los datos del cliente actualmente registrados!
Cliente 1: El conjunto de atributos es a 10. Cliente 2: no tiene que configurado.
Si inicio sesión con el cliente y les pregunto a los datos del Cliente 1, obtengo los datos correctos. Pero otro camino: inicie sesión con el cliente 1: ¡solicite datos del cliente 2 y recupere los datos del cliente 1!
Aquí está el código fuente que estoy usando
Solución
En primer lugar: su pregunta no es muy clara y su código es un desastre. Pero tengo una idea de lo que va mal. Es este código:
<?php
$customerModel = Mage::getModel('customer/customer');
$loggedInCustomer = $customerModel->load(Mage::getSingleton('customer/session')->getId());
$geeeeeciiiii = $customerModel->load($this->getRequest()->getParam('id'));
?>
No puedes reutilizar el $customerModel
variable. Esto solo funcionaría si load()
Devuelve un nuevo objeto, pero en Magento no. Carga los datos para el objeto de la base de datos y devuelve una referencia al mismo objeto. Entonces, en su código, los datos del modelo se cargan dos veces.
Úselo de esta manera y lo más probable es que su código funcione como se esperaba (siempre que funcione toda la otra lógica en su código):
<?php
$customerModel = Mage::getModel('customer/customer');
$loggedInCustomer = Mage::getSingleton('customer/session')->getCustomer();
$geeeeeciiiii = Mage::getModel('customer/customer')->load($this->getRequest()->getParam('id'));
?>