Admin模块加载订单当前状态报错:关联未找到的解决方案问询
解决Shopware Admin中加载订单当前状态的关联错误问题
核心问题是你的关联写法没正确处理层级关系:stateMachineState是订单(order)的关联字段,并非当前实体(fe_pa_conversion)的平级关联,所以直接平级调用addAssociation会提示找不到关联。
正确的关联加载写法
如果只是需要加载订单当前状态用于展示,要把stateMachineState嵌套在order关联下:
this.repository = this.repositoryFactory.create('fe_pa_conversion'); const criteria = new Criteria(); // 嵌套加载订单的stateMachineState关联 criteria.addAssociation('order.stateMachineState'); // 若还需状态机的详细信息(比如technicalName),继续嵌套stateMachine criteria.addAssociation('order.stateMachineState.stateMachine');
正确的过滤写法
如果要根据订单状态机的technicalName过滤数据,过滤条件的字段路径必须对应完整的嵌套关联层级:
this.repository = this.repositoryFactory.create('fe_pa_conversion'); const criteria = new Criteria(); // 先加载所需关联 criteria.addAssociation('order.stateMachineState.stateMachine'); // 过滤条件的路径要完整指向目标字段 criteria.addFilter(Criteria.equals('order.stateMachineState.stateMachine.technicalName', 'order.state'));
关键注意点
- 关联字段名称必须和实体定义中的关联名称完全一致,确认你的订单实体中当前状态的关联字段确实是
stateMachineState - 多层关联必须用
.做嵌套,不能平级调用addAssociation
内容的提问来源于stack exchange,提问作者Gitte Wange Olrik
相关产品推荐
相关产品推荐

