You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sylius 1.13重写AvailableProductOptionValuesResolver类不生效的解决方法

解决Sylius 1.13重写AvailableProductOptionValuesResolver类不生效的问题

要让自定义类生效,需完成以下配置步骤:

  • 确认自定义类结构与命名空间
    确保自定义类的命名空间为App\Component\Product\Resolver\AvailableProductOptionValuesResolver,且正确继承原类(避免重写所有方法):

    namespace App\Component\Product\Resolver;
    
    use Sylius\Component\Product\Resolver\AvailableProductOptionValuesResolver as BaseResolver;
    
    class AvailableProductOptionValuesResolver extends BaseResolver
    {
        // 你的自定义逻辑,比如添加调试代码
        public function resolve(...$args)
        {
            var_dump('自定义Resolver已触发');
            return parent::resolve(...$args);
        }
    }
    
  • 覆盖Sylius对应服务配置
    在项目根目录的config/services.yaml中添加配置,将原服务的类替换为自定义类:

    services:
        sylius.resolver.available_product_option_values:
            class: App\Component\Product\Resolver\AvailableProductOptionValuesResolver
            arguments:
                - '@sylius.repository.product_option_value'
                - '@sylius.context.locale'
    

    保持参数与原服务一致,确保依赖注入正常运行。

  • 清除Symfony缓存
    修改配置后必须清除缓存,让新配置生效:

    php bin/console cache:clear
    
  • 验证生效状态
    通过自定义方法中的调试输出(如var_dump),触发调用该Resolver的场景(例如访问产品选项相关页面),检查是否出现自定义调试信息,以此确认是否使用了自定义类。

内容的提问来源于stack exchange,提问作者Nico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:32:41