TL; DR: Magento 2中有什么方法可以使getTable
资源收集模型中的方法返回两个不同参数的相同表名?
详细说明
我将从Magento 1的示例开始。
假设我有一个名为的表module_entiti1_entity2
。
我需要在我宣布这个表config.xml
像这样
<module_resource>
<class>....</class>
<entities>
<entity1_entity2>
<table>module_entiti1_entity2</table>
</entity1_entity2>
</entities>
</module_resource>
然后,我可以从资源收集模型中获取表名,例如:
$collection->getTable('module/entity1_entity2');
但是,如果我愿意,我可以为同一张表使用多个别名。
如果我的config.xml
部分成为
<module_resource>
<class>....</class>
<entities>
<entity1_entity2>
<table>module_entiti1_entity2</table>
</entity1_entity2>
<entity2_entity1>
<table>module_entiti1_entity2</table>
</entity2_entity1>
</entities>
</module_resource>
我可以通过两种方式检索表:
$collection->getTable('module/entity1_entity2');
$collection->getTable('module/entity2_entity1');
在Magento 2中,不再像上面那样声明表。
我可以这样获得表名$collection->getTable('module_entity1_entity2')
。
有没有办法告诉magento,该参数module_entity2_entity1
返回与该参数相同的表名module_entity1_entity2
?
setMappedTableName
在资源模型构造函数中使用,它应该起作用,对吗?该类会比该类的其他任何方法先调用。