コレクションの `joinField`と` joinTable`の違いは何ですか?


8

このファイルapp/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpには、という名前の関数があり、joinField別の関数がありますjoinTable

フィールドが実際にフラットテーブルの列である場合、それらを結合するとはどういう意味ですか?joinTable代わりにどのような状況で使用する必要がありますか?両方を交換して使用できますか?

回答:


5

どちらのメソッドもほとんど同じjoinField()ですが、joinTableで列の配列を指定できるのに対し、結合されたテーブルから1つの列しか選択しないという違いがあります。

したがって、の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()、結合されたテーブルの複数の列が必要な場合は使用しないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.