/** * Prepares a table reference for lookup. * * Ensures all reference keys are set and properly formatted. * * @param \Zend\Db\Table\AbstractTable $dependentTable * @param \Zend\Db\Table\AbstractTable $parentTable * @param string $ruleKey * @return array */ protected function _prepareReference(AbstractTable $dependentTable, AbstractTable $parentTable, $ruleKey) { $parentTableName = get_class($parentTable) === 'Zend_Db_Table' ? $parentTable->getDefinitionConfigName() : get_class($parentTable); $map = $dependentTable->getReference($parentTableName, $ruleKey); if (!isset($map[AbstractTable::REF_COLUMNS])) { $parentInfo = $parentTable->info(); $map[AbstractTable::REF_COLUMNS] = array_values((array) $parentInfo['primary']); } $map[AbstractTable::COLUMNS] = (array) $map[AbstractTable::COLUMNS]; $map[AbstractTable::REF_COLUMNS] = (array) $map[AbstractTable::REF_COLUMNS]; return $map; }