我试图通过添加PriceHelper函数来覆盖getOriginalPrice类,但是由于service.yml上的服务没有注册,所以我添加了以下内容:
services:
AppBundle\Helper\PriceHelper\:
class: AppBundle\Helper\PriceHelper
arguments:
- "@sylius.calculator.product_variant_price"
tags:
- { name: templating.helper, event: sylius.templating.helper.price, method: getOriginalPrice, alias: sylius_calculate_original_price }在树枝上,我补充道:
{%- macro calculateOriginalPrice(variant) -%}
{% from _self import convertAndFormat %}
{{- convertAndFormat(variant|sylius_calculate_original_price({'channel': sylius.channel})) }}
{%- endmacro -%}代之以:
{{ money.calculatePrice(product|sylius_resolve_variant) }}至
{{ money.calculateOriginalPrice(product|sylius_resolve_variant) }}错误:
Unknown "sylius_calculate_original_price" filter. Did you mean
"sylius_calculate_price"?有什么想法吗?
发布于 2018-08-22 07:39:09
问题解决了。services.yml实际上很好。只需在config.yml中添加以下内容:
twig:
globals:
sylius_calculate_original_price: "@app.templating.helper.price"在树枝上:
{{ sylius_calculate_original_price.getOriginalPrice(variant,{'channel': sylius.channel}) }}services.yml可以缩短为:
app.templating.helper.price:
decorates: sylius.templating.helper.price
class: AppBundle\Helper\PriceHelper
arguments:
- "@sylius.calculator.product_variant_price"发布于 2018-08-20 12:13:09
PriceHelper服务在以下文件中配置:https://github.com/Sylius/Sylius/blob/f7d42d2ce64288407372775e0ed421debcd50cd3/src/Sylius/Bundle/CoreBundle/Resources/config/services/templating.xml
但是,与其像你那样更换服务,不如把它装饰一下。使用新类扩展PriceHelper类,并添加所需的功能,然后添加新服务的配置,如下面的链接所述,以装饰PriceHelper服务:decoration.html
在您的具体情况下,您必须使用以下配置:
AppBundle\Helper\PriceHelper:
decorates: '@sylius.templating.helper.price'
arguments:
$productVariantPriceCalculator: '@sylius.calculator.product_variant_price'https://stackoverflow.com/questions/51924554
复制相似问题