2017-11-14 51 views
1

私のストアから顧客データを取得しようとしていますが、一部のアトリビュートに値をテキストとして持つことを除いて、テキスト値では、magentoは属性に数値を割り当て、この属性からその番号を取得する場所を知っています。クライアントごとにこの属性番号を取得するにはどうすればよいですか?データをピックアップするために2つのコードをマージする

私はテキスト値と属性の数値を取得します。このコードでは

$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); 
} 

私が引っ張ってみたい何

'tipoend'=>addslashes($username_loaded->getEsmartAddressType()) 

array (1) { 
    ["tipoend"] => 
    string (1) "0" 
} 

を引いて何を'example'=>addslashes($user_loaded-> getExample())ですべてのフィールドをもたらすことができますが、テキスト値を使用して作成されているフィールドは私に0または''

を持参 getEsmartAddressTypeのみで、私が必要とするこの値が得られません。最初のコードを取得すると、どのように値8993が得られますか?私は各顧客(70,000)を取得する必要があります。

'tipoend'=>addslashes($username_loaded->getEsmartAddressType()) 

array (1) { 
    ["tipoend"] => 
    string (1) "8993" 
} 

答えて

0
$model->getResource()->getAttribute('attribute_code')->getFrontendLabel(); 

または

$model->getAttributeText('attribute_code'); 

あなたの例

'tipoend'=>addslashes($username_loaded->getAttributeText('esmart_address_type')) 

UPDATEもこの

アドレスエンティティは、独自のID

+0

を持っているので、ラインが、私はラベルの名前を得た

$usuario_loaded = Mage::getModel('customer/address')->load($id); 

(ユーザーIDとアドレスをロードすることはできません)間違っている、私はその中の値を必要としています。 –

+0

あなたはオプションIDと値の両方が必要であることを意味しますか?私はgetAttributeTextとgetData()の両方を使用します。 –

+0

問題は、顧客IDからこのデータを取得する必要があると思います。なぜなら、私は新しい銀行に追加できるように、マークした情報を知る必要があるからです。しかし、このデータを回復することはできませんこの方法で –

関連する問題