TL; DR: Esiste un modo in Magento 2 per rendere il metodo getTable
da un modello di raccolta di risorse per restituire lo stesso nome di tabella per 2 parametri diversi?
Spiegazione dettagliata Inizierò
con un esempio di Magento 1.
Diciamo che ho una tabella chiamata module_entiti1_entity2
.
Avevo bisogno di dichiarare questa tabella nella mia in config.xml
questo modo
<module_resource>
<class>....</class>
<entities>
<entity1_entity2>
<table>module_entiti1_entity2</table>
</entity1_entity2>
</entities>
</module_resource>
Quindi posso ottenere il nome della tabella da un modello di raccolta risorse, ad esempio in questo modo:
$collection->getTable('module/entity1_entity2');
Ma se voglio posso usare più alias per la stessa tabella.
Se la mia config.xml
sezione diventa
<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>
Posso recuperare il mio tavolo in 2 modi:
$collection->getTable('module/entity1_entity2');
$collection->getTable('module/entity2_entity1');
In Magento 2 non esiste più una dichiarazione di tabella come sopra.
Posso ottenere il nome del mio tavolo in questo modo $collection->getTable('module_entity1_entity2')
.
C'è un modo per dire a Magento che per il parametro module_entity2_entity1
restituisce lo stesso nome di tabella del parametro module_entity1_entity2
?
setMappedTableName
costruttore nel mio modello di risorsa dovrebbe funzionare, giusto? Quello viene chiamato prima di qualsiasi altro metodo della classe.