¿Cuál es la diferencia entre `joinField` y` joinTable` en colecciones?


8

En el archivo app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php, hay una función llamada joinFieldy hay otra joinTable.

Si los campos son en realidad columnas en las tablas planas, ¿qué significa unirlos? ¿Y en qué circunstancias debería usar joinTableen su lugar? ¿Se pueden usar ambos indistintamente?

Respuestas:


5

Ambos métodos son casi idénticos, la diferencia es que joinField()solo selecciona una sola columna de la tabla unida, mientras que puede especificar una matriz de columnas en joinTable`.

Por lo tanto, siempre puede usar en joinTablelugar de joinField. El ejemplo

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

es lo mismo que

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

Pero joinField()no debe usarse si necesita más de una columna de la tabla unida.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.