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

http://pastebin.com/7bhefhud

¿Fue útil?

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'));
?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top