質問

マゼントと一緒に働いています、私は注文していて、私はこのようにそれらを印刷します:

echo $order->getId();
echo $order->getCustomerEmail();
.

私の問題は私がGETメソッドのすべての名前を知らないので、利用可能なすべてのリストをどこで見つけることができるのか

私の目標は外部データベース内のすべての注文をエクスポートすることです。

役に立ちましたか?

解決

注文(または任意のオブジェクト)のデータは、配列である保護されたメンバ変数_dataに保持されています。このデータはデータベーステーブル(リソースモデルによって埋められています)から来ます。

データ配列

この配列を取得してそれを経由でダンプすることができます。

print_r($order->getData());
// or
var_dump($order->getData());
.

print_r()

でこのような出力を取得します。
Array
(
    [entity_id] => 2
    [state] => new
    [status] => pending
// ...
.

ゲッター

今すぐこれでMagento Objectのマジックゲッターを使ってすべてを取得できます。各値は、$object->getValue()が配列からのキーのキャメルケースバージョンであるValueの形式で検索可能です。

上記の値の場合は

$order->getEntityId();
$order->getState();
$order->getStatus();
.

およびcustomer_idの場合たとえば、$order->getCustomerId()

を呼び出すことができます。

オーバーライド

ゲッターは上書きされます。ゲッター構造はVarien_Objectクラスで定義されており、各Magentoモデルはメソッドを明示的に定義することによってマジックゲッターメソッドをオーバーライドすることができます。そのため、コードを見たり、IDEでヒントを使用したりすることで、モデルのメソッドを確認する必要があります。

他のヒント

オブジェクト内のすべての利用可能なフィールドを単に印刷することができます。

print_r($order->getData())
.

注文はEAV形式では保存されないため、すべてのデータがフラットテーブルにあります。sales/orderモデルインスタンスをロードすると、sales_flat_orderテーブルから行をロードしてここで表示する列を参照してください。increment_idクラスオブジェクトには、$order->getIncrementId()クラスオブジェクトには、顧客名を返すがMage_Sales_Model_OrderテーブルのgetCustomerName()列には関係があります。

を試してください
foreach($order->getData() as $key => $value)
{
  //$key;
  //$value
}
.

1行の解決策:

array_keys($order->getData())
.

 $resource = Mage::getSingleton('core/resource');
 $readConnection = $resource->getConnection('core_read');  
 /**
  * Get the table name
  */
 $tableName = $resource->getTableName('sales/order');

 $saleafield=$readConnection->describeTable($tableName);
 var_dump($saleafield);
.

から: https://stackoverflow.com/questions/25245862/Get.-All-field-names-from-magento-model

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top