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

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

带有 AUTHORIZE.NET GATEWAY 的 PAYUM BUNDLE。

谁能帮帮我。

提前谢谢大家。

【问题讨论】:

    标签: symfony symfony-2.1 symfony-forms symfony-2.3 payum


    【解决方案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 之类的内容)。
    猜你喜欢
    • 2014-07-20
    • 2014-07-27
    • 2014-12-13
    • 2015-03-24
    • 2016-08-07
    • 1970-01-01
    • 2016-07-21
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多