我必须基于Sylius的商店来销售免费产品。为此,我遵循了文档"自定义验证"并进行了修改:
#AppBundle/Resources/config/validation.yml
SyliusComponentCoreModelChannelPricing:
# see http://docs.sylius.org/en/latest/customization/validation.html
#the original constraint said that the minimum price is 0.01 in vendor/sylius/sylius/src/Sylius/Bundle/CoreBundle/Resources/config/validation/ChannelPricing.xml
properties:
price:
- NotBlank:
message: sylius.channel_pricing.price.not_blank
groups: [app_product]
- Range:
min: 0
minMessage: app.channel_pricing.price.min
groups: [app_product]
#app/config/parameters.yml
parameters:
sylius.form.type.channel_pricing.validation_groups: [app_product] # see http://docs.sylius.org/en/latest/customization/validation.html
它一无所获:在Symfony Profiler中,Sylius验证组仍在应用中。
我无法弄清楚我做了什么不好。
请注意:
- 我尝试将参数存储到service.yml文件中,它确实没有更改。
- 我不知道如何找到参数的名称,因此我使用了一个类似于ressource
sylius.channel_pricing
的名称(请参阅:bin/console sylius:debug:resource sylius.channel_pricing
)
我从@pjedrzejewski复制粘贴答案:
也许您应该使用促销来应用适当的折扣并获得 订单总计为0?那么Sylius应该很好地处理它。我不是 当然,我们应该允许设定价格0,可能会导致可怕的错误