TL; DR: Magento 2にgetTable
は、リソースコレクションモデルからメソッドを作成して、2つの異なるパラメーターに対して同じテーブル名を返す方法はありますか?
詳細な説明
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>
2つの方法でテーブルを取得できます。
$collection->getTable('module/entity1_entity2');
$collection->getTable('module/entity2_entity1');
Magento 2では、上記のようなテーブル宣言はもうありません。
このようにテーブル名を取得できます$collection->getTable('module_entity1_entity2')
。
パラメーターがパラメーターmodule_entity2_entity1
と同じテーブル名を返すようにmagentoに指示する方法はありますmodule_entity1_entity2
か?
setMappedTableName
、私がリソースモデルコンストラクタでを使用すれば、動作するはずですよね?それはクラスの他のメソッドの前に呼び出されます。