Payum Bundle:如何在 symfony2 中更改捕获操作的视图

Posted

技术标签:

【中文标题】Payum Bundle:如何在 symfony2 中更改捕获操作的视图【英文标题】:Payum Bundle : How to change the view of capture action in symfony2 【发布时间】:2014-09-11 14:18:29 【问题描述】:

我正在使用 PAYUM Bundle 进行支付网关集成,它的基本示例运行良好,但现在我想通过更改 payum 捕获操作布局并添加额外的字段支付详细信息实体来将 payum 包集成到应用程序中。

带有 AUTHORIZE.NET GATEWAY 的 PAYUM BUNDLE。

谁能帮帮我。

提前谢谢大家。

【问题讨论】:

【参考方案1】:

payum 模板不保存在捆绑包中,而是保存在 payum lib itself 中。 Standard templates inheritance 在这里不起作用。

在 0.9 版(现在随 Sylius 提供)中没有简单的方法可以做到这一点。您必须覆盖整个 CaptureAction 类。在 0.10 中,可以通过覆盖 layout 或 stripe js page 等容器参数来更改模板。

在沙箱中你可以找到layout modification的例子

【讨论】:

+1 通过参数覆盖模板,我认为这可能是最佳实践方法。注: v0.15(可能之前?)中有一个错误,这意味着您通过 params 定义的任何模板都会被覆盖。这在 v1.0.0 中已修复【参考方案2】:

您必须覆盖 PayumBundle 的视图。

怎么做?

您必须在 /src/Path/To/Your/Bundle/Resources/views 中复制要覆盖的包的文件夹结构,并将要覆盖的 twig 文件放入其中。

示例

假设你的包名是FooBundle,你想覆盖PayumBundlepayment.twig.html(我只是举个例子,不知道有没有这样命名的文件)。同样,假设这根树枝在 /vendor/Path/To/PayumBundle/Resources/views/Payment/payment.twig.html 内部。

你要做的就是在/src/Path/To/Your/Bundle/Resources/views/Payment/payment.twig.html内部创建

首先,Symfony2 会查看你的包中的覆盖视图:如果有的话,会拿走你的并忽略包之一。否则它会占用捆绑的一个。

【讨论】:

如果您只想更改模板而不是创建整个子包,也可以使用app/Resources/PayumBundle/views/Payment/payment.html.twig @Qoop: 是的,当然,但是在 Symfony2 中编写没有包的代码有点奇怪:) 我想这取决于你的工作方式。我正在使用 FOSUserBundle 但没有子包,因此需要将模板粘贴在 app/Resource 中。 @Qoop:您如何构建应用程序的代码?您是否仅将 Symfony2 用作放置在另一个应用程序前面的“防火墙”?我不这么认为,所以现在我只是好奇:D 我使用 Sylius (github.com/Sylius/Sylius) 作为基本方法,其中包含大量单独的(理想情况下是独立的)捆绑包以及 CoreBundle 中的用户内容以及连接和捆绑包的任何内容,然后WebBundle 中的所有视图和内容(或 app/Resource/views 用于 FOSUserBundle 之类的内容)。

以上是关于Payum Bundle:如何在 symfony2 中更改捕获操作的视图的主要内容,如果未能解决你的问题,请参考以下文章

Payum Bundle 的配置如何工作?

覆盖 Payum Stripe Bundle 模板

如何在本地使用 wamp 时摆脱 payum“SSL 证书问题:无法获取本地颁发者证书”错误

使用 Sylius 0.16 和 Payum 实施异地支付网关时如何完成订单

在将 RabbitMQ Bundle 用于 Symfony2 时防止在 RabbitMQ 中创建多个连接

如何在没有完整项目的情况下测试共享的 Symfony 2 Bundle