集合中的“ joinField”和“ joinTable”有什么区别?


8

在该文件中app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php,有一个名为的函数joinField,还有另一个joinTable

如果字段实际上是平面表中的列,那么将它们联接起来意味着什么?我应该在什么情况下使用joinTable?它们可以互换使用吗?

Answers:


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()如果您需要联接表中的多个列,则不应使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.