symfony - 如何使用 JMS payementCoreBundle 将 Order 对象传递给detailsAction 和 CompleteAction

标签 symfony jmspaymentpaypalbundle

我需要为应用程序进行支付交易,并且我看到了 JSMPaymentCoreBundle。

我阅读了 JSMPaymentCoreBundel 的文档但我想知道如何将对象传递给 Controller ​​detailsAction(Order $order) 和completeAction(Order $order)。

例如,在detailAction Controller 中,重定向响应如下所示:

return new RedirectResponse($this->router->generate('payment_complete', array('orderNumber' => $order->getOrderNumber(),)));

对我来说,我们不会将参数中所需的 Order 对象传递给下面的completeAction Controller ,而只传递 orderNumer:

/**
* @Route("/{orderNumber}/complete", name = "payment_complete")
*/
public function completeAction(Order $order){
    ...
}

我认为如果我不传递 Order 对象,我会收到错误。那么最好的方法是什么以及如何做到这一点?

开发和 Symfony 的新手,我真的很想理解,而不是简单地复制/粘贴。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用@ParamConverter注释将orderNumber转换为其实体

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html

use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
...
    /**
    * @Route("/{orderNumber}/complete", name = "payment_complete")
    * @ParamConverter("order", options={"mapping": {"orderNumber": "orderNumber"}})
    */
    public function completeAction(Order $order){
        ...
    }

更新: 再次阅读你的问题,有点困惑。那么,您在获取 $order 时是否遇到问题(错误),或者您只是困惑为什么传递 OrderNumber,但获取 Order 实体?

如果是这样,请忽略我的第一个示例,其作用与所示相同:

/**
     * @Route("/{orderNumber}/details", name = "payment_details")
     * @Template
     */
    public function detailsAction(Order $order)

这意味着 ParameterConverter 会为你施展魔法,将传递的 orderNumber 转换为实体 Order,这实际上是 Symfony 文档推荐的“最佳实践”方法:http://symfony.com/doc/2.3/best_practices/controllers.html#using-the-paramconverter

并且您不需要为这种情况添加额外的注释

关于symfony - 如何使用 JMS payementCoreBundle 将 Order 对象传递给detailsAction 和 CompleteAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846441/

相关文章:

authentication - 异常:Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken::serialize() 必须返回字符串或 NULL

php - 在 Symfony2 中使用 Monolog 旋转日志

Symfony生产环境抛出500错误: Doctrine\ORM\ORMException 'Unknown Entity namespace alias ' DSBlogBundle'

html - Symfony2,学说扩展树 : Generating a "tree"-like dropdown Select list

javascript - 在 Twig 模板中包含 Js

symfony - JMSPaymentPaypalBundle 是否支持链式支付?

php - 如何替换 Jms Payment Paypal Bundle 中的文本