Как нужно вызвать функцию в этом примере для 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 объект, который затем вы можете сохранить в базе данных (после того, как она запущена, то есть отправленная форма верна).

Удачи.

Другие вопросы по тегам