Drupal Commerce:无法从产品变体对象获取变体类型机器名
问题原因与解决方法
原因
在Drupal中,type是产品变体实体的bundle(捆绑)标识字段,它和sku这类普通字段的处理逻辑完全不同。你通过print_r看到的是实体的原始底层数据结构,但实体对象对bundle字段做了封装,并没有暴露->value属性,所以直接访问$variation->type->value会返回NULL。
正确获取方式
有两种可靠的方法可以获取变体类型的机器名:
- 最推荐的标准方法:调用实体类的原生
bundle()方法,直接返回bundle机器名:$variation_type = $variation->bundle(); - 字段对象访问方式:由于bundle字段本质是实体引用类型,需要访问其
target_id属性来获取值:$variation_type = $variation->get('type')->target_id;
内容的提问来源于stack exchange,提问作者stckvrw
相关产品推荐
相关产品推荐

