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>
Я могу получить свою таблицу двумя способами:
$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
в своем конструкторе модели ресурсов, он должен работать, верно? Этот вызывается перед любым другим методом из класса.di.xml
. Если это невозможно, я реализую свой собственный механизм. Но это то, что мне нужно, чтобы начать. Спасибо.