joinLeft( array('order_table' => $collection->getTable('sales/order')), 'orde-6ren">
gpt4 book ai didi

php - Magento 的外部 mod "Integrity constraint violation: 1052 Column 'created_at' 问题在 where 子句中不明确”

转载 作者:行者123 更新时间:2023-11-30 00:57:50 25 4
gpt4 key购买 nike

$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

最佳答案

我已经在各个地方进行了搜索,但没有得到任何对我有帮助的确切结果。但现在我明白了为什么会发生这样的事情。很简单,因为它说“违反完整性约束:1052 列‘created_at’在where子句中不明确”,意味着它正在寻找另一个created_at字段。因为当我们添加或加入另一个表时,它还有一个名为created_at的字段。那么解决这个问题的办法是什么呢?

有什么想法…………

很简单,只是告诉magento,created_at是main_table而不是我的自定义表,你怎么能这样做,我会告诉你完整的过程。

第1步.在销售订单grid.php文件中找到以下代码

$this->addColumn('created_at', array( 'header' => Mage::helper('sales')->__('购买日期'), 'index' => 'created_at' , '类型' => '日期时间', '宽度' => '100px', ));

第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。所以我添加了以下行,这个created_at是主表 sales_flat_order 不是其他表的。

流程就是这样

有关更多信息,您可以访问博客

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

关于php - Magento 的外部 mod "Integrity constraint violation: 1052 Column 'created_at' 问题在 where 子句中不明确”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20405483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com