Prestashop Collection加入数据库

时间:2016-08-25 07:50:09

标签: php class override prestashop prestashop-1.6

今天我有一些有趣的事情要做,我可以使用你的一些帮助。

我想加入一个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的集合吗?

谢谢!

1 个答案:

答案 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。