本文整理汇总了PHP中Mage_Eav_Model_Entity_Attribute::getBackendTable方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Eav_Model_Entity_Attribute::getBackendTable方法的具体用法?PHP Mage_Eav_Model_Entity_Attribute::getBackendTable怎么用?PHP Mage_Eav_Model_Entity_Attribute::getBackendTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Eav_Model_Entity_Attribute
的用法示例。
在下文中一共展示了Mage_Eav_Model_Entity_Attribute::getBackendTable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: copyAttributeValues
/**
* Copy all eav attribute values for a specified attribute from one table to another eav attribute table,
* updating the attribute id. The old records remain in the old value table.
*
* @param Mage_Eav_Model_Entity_Attribute $oldAttribute
* @param Mage_Eav_Model_Entity_Attribute $newAttribute
* @return array Affected entity ids
*/
public function copyAttributeValues(Mage_Eav_Model_Entity_Attribute $oldAttribute, Mage_Eav_Model_Entity_Attribute $newAttribute)
{
$select = $this->_getReadAdapter()->select()->reset()->distinct(true)->from($oldAttribute->getBackendTable(), 'entity_id')->where('attribute_id=:attribute_id');
$entityIds = $this->_getReadAdapter()->fetchCol($select, array('attribute_id' => $oldAttribute->getId()));
// Remove new attribute value records for entities that are being migrated
$this->_getWriteAdapter()->delete($newAttribute->getBackendTable(), array('attribute_id=?' => $newAttribute->getId(), 'entity_id IN(?)' => $entityIds));
// Copy old attribute values to the new attribute
$selectFields = array('entity_type_id', new Zend_Db_Expr($newAttribute->getId()), 'store_id', 'entity_id', 'value');
$insertFields = array('entity_type_id', 'attribute_id', 'store_id', 'entity_id', 'value');
$select->reset()->from($oldAttribute->getBackendTable(), $selectFields)->where('attribute_id=?', $oldAttribute->getId());
$update = $this->_getWriteAdapter()->insertFromSelect($select, $newAttribute->getBackendTable(), $insertFields, Varien_Db_Adapter_Interface::INSERT_IGNORE);
$this->_getWriteAdapter()->query($update);
return $entityIds;
}