Как нужно вызвать функцию в этом примере для JMSPaymentCoreBundle?
Как бы detailsAction()
должны вызываться в примере, приведенном в документации для JMSPaymentCoreBundle?
Он использует объект порядка, который в определении функции передается в качестве аргумента.
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,
));
1 ответ
Да ты прав. detailsAction
требует Order
объект для того, чтобы работать. Таким образом, вам нужно будет создать его к тому времени, когда вы приступите к этому действию, иначе оно выдаст ошибку 404 (потому что маршрут без заказа не существует).
Вы должны создать свой собственный Order
объект, который затем вы можете сохранить в базе данных (после того, как она запущена, то есть отправленная форма верна).
Удачи.