Qual è la differenza tra `joinField` e` joinTable` nelle raccolte?


8

Nel file app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpc'è una funzione chiamata joinFielde ce n'è un'altra joinTable.

Se i campi sono effettivamente colonne nelle tabelle piatte, cosa significa unirle? E in quale circostanza dovrei usare joinTableinvece? Entrambi possono essere usati in modo intercambiabile?

Risposte:


5

Entrambi i metodi sono quasi identici, la differenza è che joinField()seleziona una sola colonna dalla tabella unita, mentre è possibile specificare una matrice di colonne in joinTable`.

Quindi puoi sempre usare joinTableinvece di joinField. L'esempio

 joinField('country_name', 'directory/country_name', 'name', 'country_id=shipping_country', "{{table}}.language_code='en'", 'left')

equivale a

 joinTable('directory/country_name', 'country_id=shipping_country', ['country_name' => 'name'], "{{table}}.language_code='en'", 'left')

Ma joinField()non dovrebbe essere usato se hai bisogno di più di una colonna della tabella unita.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.