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
,你想覆盖PayumBundle
payment.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 中更改捕获操作的视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在本地使用 wamp 时摆脱 payum“SSL 证书问题:无法获取本地颁发者证书”错误
使用 Sylius 0.16 和 Payum 实施异地支付网关时如何完成订单