1
あいまいな列名を持つwhere句の競合
このための少しのコンテキスト。(グリッドを介して)注文のエクスポート機能を拡張して、列を増やしたい。エクスポート用の新しいグリッドと、元のモデルを拡張する新しいコレクションモデルを追加するモジュールを作成しました。これは_beforeLoad()関数を使用するため、必要なテーブルを結合できます。 私が抱えている問題は、グリッドからフィルターが追加されると(increment_id、注文日など)、これによって追加されるwhere句がテーブルの前に付かないため、あいまいな列名の問題が発生することです。たとえば、increment_idでは、where句に問題があります。 SELECT `main_table`.*, `sales`.`total_qty_ordered`, `sales`.`entity_id` AS `order_id`, `sagepay`.`vendor_tx_code` FROM `sales_flat_order_grid` AS `main_table` LEFT JOIN `sales_flat_order` AS `sales` ON main_table.increment_id = sales.increment_id LEFT JOIN `sagepaysuite_transaction` AS `sagepay` ON order_id = sagepay.order_id WHERE (increment_id LIKE '%100000261%') GROUP BY `main_table`.`entity_id` このwhere句は、_addColumnFilterToCollection()関数で他のテーブルに結合する前に追加されます protected function _addColumnFilterToCollection($column) { if ($this->getCollection()) { $field = ( $column->getFilterIndex() …