假设我正在使用Yii2制作电子商务应用,并希望将所有付款方式都作为模块实施。
用户确认订单后,我想将用户重定向到付款流程。我在CheckoutController中有以下代码:
if($order->save())
{
$module = Yii::$app->getModule('payment');
$module->init();
}
此时我想与$order
模块共享当前的订单payment
实例。
这样做的最佳方法是什么?
我查看了文档,但没有发现任何相关内容。
谢谢!
答案 0 :(得分:1)
在您的付款模块中,创建方法setOrder($order)
,设置当前订单,检查它是否是Order
的实例,依此类推。
创建另一种方法,例如process()
,执行付款处理。如果$order
设置正确,您应该在此处查看。
然后,您可以在CheckoutController
:
if ($order->save())
{
$module = Yii::$app->getModule('payment');
$module->init(); // I believe yii calls this automatically
$module->setOrder($order);
$module->process();
}