是的,你说得对。
在JMSPaymentCoreBundle文档中提供的示例中,如何调用detailsAction()
?
它使用了一个order对象,该对象在函数定义中作为参数传递。
public function detailsAction(Order $order)
{
$form = $this->getFormFactory()->create('jms_choose_payment_method', null, array(
'amount' => $order->getAmount(),
[...]
我假设函数只有在调用时传递订单对象时才能工作,这是对的吗?除了做这样的事情之外,还有其他方法可以实现这一点吗
return $this->forward('MyBundle:Payment:details', array(
'order' => $order,
));
detailsAction
需要一个Order
对象才能工作。因此,您必须在执行此操作时创建一个,否则它将抛出404错误(因为没有订单的路线不存在)。
您应该创建自己的Order
实体,然后可以将其持久化到数据库中(一旦启动,即提交的表单是正确的)。
祝你好运。