Qual é a diferença entre `joinField` e` joinTable` nas coleções?


8

No arquivo app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php, há uma função nomeada joinFielde outra joinTable.

Se os campos são realmente colunas nas tabelas simples, o que significa unir-se a eles? E em que circunstância devo usar joinTable? Ambos podem ser usados ​​de forma intercambiável?

Respostas:


5

Ambos os métodos são quase idênticos, a diferença é que joinField()apenas uma coluna é selecionada da tabela unida, enquanto você pode especificar uma matriz de colunas em joinTable`.

Então você sempre pode usar em joinTablevez de joinField. O exemplo

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

é o mesmo que

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

Mas joinField()não deve ser usado se você precisar de mais de uma coluna da tabela unida.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.