0
$select->joinLeft(
       array('order_table' => $collection->getTable('sales/order')),
       'order_table.entity_id=main_table.entity_id',
       array('admin_user_id' => 'admin_user_id')
);

エラーの原因となっているカスタム magento モジュールで

Integrity constraint violation: 1052 Column 'created_at' in where clause is ambiguous

このコードをコメントアウトすると、magento を正しく実行できます。コードはオブザーバーにあります。

    public function salesOrderGridCollectionLoadBefore($observer)
    {
        $collection = $observer->getOrderGridCollection();
        $select = $collection->getSelect();
        $select->joinLeft(
           array('order_table' => $collection->getTable('sales/order')),
               'order_table.entity_id=main_table.entity_id',
            array('admin_user_id' => 'admin_user_id')
        );
    }

誰でも修正をアドバイスできますか?これは私のコードでもモジュールでもなく、それが行っていることすべてを完全には理解していません。

テーブルにフィールドを追加して入力すると、注文ページを使用して検索できるようになると思います。

前もって感謝します。-T

4

2 に答える 2

0

私はこれをどこでも検索しましたが、これに役立つ正確な結果が得られません。しかし、今、私はそのようなことが起こっている理由の結果を持っています.「整合性制約違反: 1052 列 'created_at' in where 句があいまいです」と言っているのは簡単です。これは、別の created_at フィールドを見つけていることを意味します。他のテーブルを追加または結合すると、created_at という名前のフィールドもあるからです。それで、これに対する解決策は何ですか?

任意のアイデア………………</p>

その簡単なことは、created_atが私のカスタムテーブルではなくmain_tableであることをmagentoに伝えただけです。どうすればそうできますか。完全な手順を説明します。

ステップ 1. 販売注文 grid.php ファイルで以下のコードを見つけます。

$this->addColumn('created_at', array( 'header' => Mage::helper('sales')->__('Purchased On'), 'index' => 'created_at', 'type' => 'datetime', 'width' => '100px', ));

ステップ 2. 2 番目のステップでは、コードを以下のコードに置き換えます。

$this->addColumn('created_at', array( 'header' => Mage::helper('sales')->__('Purchased On'), 'index' => 'created_at', 'type' => 'datetime', 'width' => '100px', 'filter_index' => 'main_table.created_at', ));

あなたではなく、コードで私が変更したものを見つけましたか。わかりました。説明させてください。このコードでは、次の行を追加しました。

'filter_index' => 'main_table.created_at',

次の行の用途を考えてみると、ここで販売注文グリッドのcreated_at列は、メインのコレクションからcreated_atを見つけます。しかし、コレクションでcreated_atを2回取得しています。 sales_flat_order は他のテーブルのものではありません。

それがプロセスです

詳細については、ブログをご覧ください

http://www.webtechnologycodes.com/integrity-constraint-violation-1052-column-created_at-in-where-clause-is-ambiguous/

于 2014-04-17T10:57:23.413 に答える