如何解决Oro 价目表业务单位所有权
我需要为 priceList
实体配置所有权。为了解决这个问题,我创建了一个迁移来添加所需的字段:
$this->extendExtension->addManyToOneRelation(
$schema,$table,'organization',$organizationTable,'name',[
'extend' => [
'is_extend' => true,'owner' => ExtendScope::OWNER_SYSTEM,'without_default' => true,]
]);
$this->extendExtension->addManyToOneRelation(
$schema,'owner',$businessTable,[
'extend' => [
'is_extend' => true,]
]
);
然后更新实体配置信息:
$params = [
"owner_type" => "BUSINESS_UNIT","owner_field_name" => "owner","owner_column_name" => "owner_id","organization_field_name" => "organization","organization_column_name" => "organization_id"
];
foreach($params as $code => $value) {
$queries->addPostQuery(
new UpdateEntityConfigEntityValueQuery(
PriceList::class,'ownership',$code,$value
)
);
}
迁移处理没有问题,但 priceList
索引页上的数据网格出现错误。
执行 'SELECT count(o0_.id) AS sclr_0 FROM oro_price_list o0_WHERE o0_ 时发生异常。 = 1'
看起来数据网格无法访问组织名称来处理分页查询。来自 ORO 4.1 EE 的数据网格未修改网格
解决方法
如果所有权配置通过 SetOwnershipTypeQuery
而不是 UpdateEntityConfigEntityValueQuery
$queries->addQuery(
new SetOwnershipTypeQuery(
PriceList::class,[
'owner_type' => 'BUSINESS_UNIT','owner_field_name' => 'owner','owner_column_name' => 'owner_id','organization_field_name' => 'organization','organization_column_name' => 'organization_id'
]
)
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。