Zend_Db_Table_Abstract::getReference PHP Method

getReference() public method

public getReference ( string $tableClassname, string $ruleKey = null ) : array
$tableClassname string
$ruleKey string OPTIONAL
return array
    public function getReference($tableClassname, $ruleKey = null)
    {
        $thisClass = get_class($this);
        if ($thisClass === 'Zend_Db_Table') {
            $thisClass = $this->_definitionConfigName;
        }
        $refMap = $this->_getReferenceMapNormalized();
        if ($ruleKey !== null) {
            if (!isset($refMap[$ruleKey])) {
                require_once "Zend/Db/Table/Exception.php";
                throw new Zend_Db_Table_Exception("No reference rule \"{$ruleKey}\" from table {$thisClass} to table {$tableClassname}");
            }
            if ($refMap[$ruleKey][self::REF_TABLE_CLASS] != $tableClassname) {
                require_once "Zend/Db/Table/Exception.php";
                throw new Zend_Db_Table_Exception("Reference rule \"{$ruleKey}\" does not reference table {$tableClassname}");
            }
            return $refMap[$ruleKey];
        }
        foreach ($refMap as $reference) {
            if ($reference[self::REF_TABLE_CLASS] == $tableClassname) {
                return $reference;
            }
        }
        require_once "Zend/Db/Table/Exception.php";
        throw new Zend_Db_Table_Exception("No reference from table {$thisClass} to table {$tableClassname}");
    }

Usage Example

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