今天我有一些有趣的事情要做,我可以使用你的一些帮助。
我想加入一个PrestaShopCollection(),我在插件安装期间创建了一个数据库表。更具体地说,我创建了一个覆盖OrderCore
和方法getOrderPaymentCollection()
,我试图实现的是添加一个"列"被称为状态,我认为我可以做的是跟随
public function getOrderPaymentCollection()
{
$order_payments = new PrestaShopCollection('OrderPayment');
$order_payments->where('order_reference', '=', $this->reference);
$order_payments->join(_DB_PREFIX_.'payment_table ppt','ppt.id_order = ' . $this->reference);
return $order_payments;
}
有没有办法实现这个目标?或者我可能需要创建payment_table的集合吗?
谢谢!
答案 0 :(得分:0)
这是一个非常老的问题:) join()方法是越野车,所以您不能这样做,因为DB类中的join()方法不是
您的代码应如下所示:
public function getOrderPaymentCollection()
{
$order_payments = new PrestaShopCollection('OrderPayment');
$order_payments->join('MyModulePaymentClass');
$order_payments->where('order_reference', '=', $this->reference);
return $order_payments;
}
MyModulePaymentClass必须声明为ObjectModel 不要忘记PrestashopCollection代码必须更新。因为在每种情况下都会引发异常。
更好的方法是使用DB :: Query。