2017-04-20 5 views
0

Ich habe ein Kundenattribut in Backend Magento erstellt, aber ich möchte dieses Attribut dem Benutzer zeigen, damit er seinen Wert im Frontend ändern kann. Mein Eingabefeld wird im Frontend angezeigt, aber der Wert ist nicht vorhanden. Ich kann diesen Wert nicht erreichen. Ich fand, dass der Wert, den ich anzeigen muss, in der Tabelle apscustomer_entity_varchar ist und die Spalte "Wert" heißt. Wie kann ich diesen Wert von dieser Tabelle erhalten? Ich habe das versucht:Wert von customer_entity_varchar erhalten - Magento

$collection = Mage::getModel('eav/entity_attribute')->getCollection(); 
foreach ($collection as $data) { 
    return $data; 
} 

aber es funktionierte nicht, also habe ich SQL-Code verwendet und es hat funktioniert. Ich weiß jedoch, dass das keine gute Möglichkeit ist, das in Magento zu tun. Was ich tat, war so etwas wie:

$connection = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$sql  = "SELECT * FROM `apscustomer_entity_varchar ` WHERE `entity_id`='$id'"; 
$rows  = $connection->fetchAll($sql); 

Wie kann ich den Wert Spalt aus meiner apscustomer_entity_varchar Tabelle in der magento Quere kommen, die getModel mit?

Antwort

0

Sie müssen die Kunden der Sitzung abzurufen, und dann können Sie das Attribut erhalten Sie wollen:

Mage::getSingleton('customer/session')->getData('attributeName'); 
Mage::getSingleton('customer/session')->getAttributeName(); //Magic getter 

Wo attribute ist der Name des Attributs Sie den Wert erhalten möchten.

0

fand ich heraus, wie das zu tun: D

Es ist eigentlich sehr einfach. Selbst wenn dies ein benutzerdefiniertes Kundenattribut ist (erstellt im Magento-Admin-Panel), muss das Attribut nicht das 'eav/entity_attribute'-Modell verwenden, sondern das' customer/customer'-Modell. Also ich muss nur das tun:

$customer_data = Mage::getModel('customer/customer')->load($customer_id)->getData(); 
echo $customer_data['attributeThatYouWant']; 

Wenn Sie nicht sicher sind, was ist der Name Ihres Attribut, das Sie bei Magento Admin-Panel unter Kunden aussehen kann/Manage-Attribute, oder Sie können das verwenden, nachdem das Modell bekommen :

var_dump($customer_data); 

Jetzt können Sie den Namen aller Kundenattribute erhalten.