我试图从我的商店中提取客户数据,我有一个完全符合我需要的代码,除了一些属性的值为文本,所以它返回0.即使有文本值, magento为属性分配一个数值,我知道从这个属性中获取该数字的位置,我如何获得每个客户端的这个属性值?
在此代码中,我获取具有文本值
的属性的数值$config = Mage::getModel('eav/config');
$attribute = $config->getAttribute('customer_address', 'esmart_address_type');
$values = $attribute->getSource()->getAllOptions();
print_r($values);
//here is another method
$options = Mage::getResourceModel('eav/entity_attribute_option_collection');
$values = $options->setAttributeFilter($attribute->getId())->toOptionArray();
print_r($values);
返回
[1] => Array
(
[value] => 8993
[label] => Residencial
)
[2] => Array
(
[value] => 8994
[label] => Comercial
)
从另一方面来看,我如何得到客户的数据,我做了一个重复循环来接收所有客户,但是我解释了带有文本值的属性为0 ,我需要带上上面代码中的数值,我将在当前实现上面的代码将所有数据组合在一起吗?
ini_set("display_errors", 1);
ini_set('memory_limit','1024M');
require_once('app/Mage.php');
Mage::app(0);
$users = Mage::getModel('customer/address')->getCollection();
$i = 1;
foreach ($users as $key => $user) {
$id = $user->getId();
$usuario_loaded = Mage::getModel('customer/address')->load($id);
$tudo = array('id'=>addslashes($usuario_loaded->getId()), 'endereço_id'=>addslashes($usuario_loaded->getId()), 'smsmessagex'=>addslashes($usuario_loaded->getEsmartFlSmsMessage()), 'smsmessagexx'=>addslashes($usuario_loaded->getEsmartFlSmsConfirmation()), 'prefixo'=>addslashes($usuario_loaded->getPrefix()), 'nome'=>addslashes($usuario_loaded->getFirstname()), 'relaçao'=>addslashes($usuario_loaded->getEsmartRelationship()), 'ocasiao'=>addslashes($usuario_loaded->getEsmartOccasion()), 'tipoend'=>addslashes($usuario_loaded->getEsmartAddressType()));
var_dump($tudo);
}
我可以使用'example'=>addslashes($user_loaded-> getExample())
显示所有字段,但使用文字值创建的字段会为我带来0
或''
我拉什么
'tipoend'=>addslashes($username_loaded->getEsmartAddressType())
array (1) {
["tipoend"] =>
string (1) "0"
}
我想拉什么 只有使用getEsmartAddressType我没有得到我需要的这个值,如何在第一个代码中得到值8993?我需要得到每个客户(7万)。
'tipoend'=>addslashes($username_loaded->getEsmartAddressType())
array (1) {
["tipoend"] =>
string (1) "8993"
}
答案 0 :(得分:0)
$model->getResource()->getAttribute('attribute_code')->getFrontendLabel();
或
$model->getAttributeText('attribute_code');
您的示例
'tipoend'=>addslashes($username_loaded->getAttributeText('esmart_address_type'))
<强>更新强>
此行也是错误的(您无法加载具有用户ID的地址)
$usuario_loaded = Mage::getModel('customer/address')->load($id);
因为地址实体有自己的ID