diff options
Diffstat (limited to 'framework')
| -rw-r--r-- | framework/Data/ActiveRecord/Relations/TActiveRecordRelation.php | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/framework/Data/ActiveRecord/Relations/TActiveRecordRelation.php b/framework/Data/ActiveRecord/Relations/TActiveRecordRelation.php index 85dd6735..a3daf35c 100644 --- a/framework/Data/ActiveRecord/Relations/TActiveRecordRelation.php +++ b/framework/Data/ActiveRecord/Relations/TActiveRecordRelation.php @@ -109,14 +109,17 @@ abstract class TActiveRecordRelation  	protected function findForeignKeys($from, $matchesRecord, $loose=false)
  	{
  		$gateway = $matchesRecord->getRecordGateway();
 -		$matchingTableName = $gateway->getRecordTableInfo($matchesRecord)->getTableName();
 +		$recordTableInfo = $gateway->getRecordTableInfo($matchesRecord);
 +		$matchingTableName = strtolower($recordTableInfo->getTableName());
 +		$matchingFullTableName = strtolower($recordTableInfo->getTableFullName());
  		$tableInfo=$from;
  		if($from instanceof TActiveRecord)
  			$tableInfo = $gateway->getRecordTableInfo($from);
  		//find first non-empty FK
  		foreach($tableInfo->getForeignKeys() as $fkeys)
  		{
 -			if(strtolower($fkeys['table'])===strtolower($matchingTableName))
 +			$fkTable = strtolower($fkeys['table']);
 +			if($fkTable===$matchingTableName || $fkTable===$matchingFullTableName)
  			{
  				$hasFkField = !$loose && $this->getContext()->hasFkField();
  				$key = $hasFkField ? $this->getFkFields($fkeys['keys']) : $fkeys['keys'];
  | 
