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
相关产品推荐
相关产品推荐

