В чем разница между `joinField` и` joinTable` в коллекциях?

8

В файле app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpесть функция с именем joinFieldи другая joinTable.

Если поля на самом деле являются столбцами в плоских таблицах, что означает их объединение? В каких обстоятельствах я должен использовать joinTableвместо этого? Могут ли они оба быть взаимозаменяемыми?

шампунь
источник

Ответы:

5

Оба метода практически идентичны, разница в том, что joinField()из объединенной таблицы выбирается только один столбец, а в joinTable можно указать массив столбцов.

Так что вы всегда можете использовать joinTableвместо joinField. Пример

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

такой же как

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

Но joinField()не следует использовать, если вам нужно более одного столбца объединенной таблицы.

Фабиан Шменглер
источник