Prestashop FrontController :: $ context是创建订单时的受保护属性

时间:2016-08-11 08:53:22

标签: php prestashop cart prestashop-1.5

我的模块我试着从购物车订购。

在我的模块控制器文件中,我正在调用validateOrder

 PaymentModule::validateOrder((int)$urbCart->id, $order_status, $order_total, "urb-it", NULL, array(), (int)$currency->id, false, $urbCart->secure_key); 

创建订单。但是我收到了错误:

  

PHP致命错误:无法在第171行的/opt/webapp/urbit/classes/PaymentModule.php中访问受保护的属性'UrbitOrderCompleteModuleFrontController :: $ context'

支付模块错误发生在(第171行)低于

if (!isset($this->context)) {
    $this->context = Context::getContext();
}

为什么将上下文称为受保护财产?我该如何创建订单?

1 个答案:

答案 0 :(得分:2)

validateOrder()不是静态方法,因此在模块控制器中调用它如下:

$this->module->validateOrder((int)$urbCart->id, $order_status, $order_total, "urb-it", NULL, array(), (int)$currency->id, false, $urbCart->secure_key);

任何扩展ModuleFrontControllerModuleAdminController的控制器都具有使用控制器的模块的属性module对象。

编辑:

模块类必须扩展PaymentModule才能使用validateOrder方法。